kullanarak geçerli JSON'u seri hale getiremiyor JSON biçimindeki veriler için bana üreten bir kod (dinlenme sunucusu) yazıyorum. PHP'de kullandığımda iyi çalışıyor, JSON geçerli, her şey yolunda. Delphi'de kullandığımda hiçbir şey işe yaramıyor. Ben internet arama yaparkensystem.json
buldum:
desearilizing JSON using SuperObject
ama bu yöntem benim için boş dizeleri döndürür.
JSON öğelerini dizi olarak kullanmak istiyorum (ör. JSONValue.items [i]).
Delphi XE7 System.JSON kullanıyorum ve superobject veya başka bir kitaplık kullanmak istemiyorum.
Dizi olarak nasıl kullanılır?
Ben JSON üretir benim kodu yapıştırın:
var
qry: TfdQuery;
FieldsObj: TJSONObject;
FieldNameArray: TJSONArray;
I: Integer;
DataObj: TJSONObject;
DataRows: TJSONArray;
RowFields: TJSONArray;
tablename:string;
begin
tablename:='produkt';
qry := TfdQuery.Create(Self);
qry.SQL.Text := 'select * from produkt where (id ='''+ProductID+''')';
qry.Connection := FDConnection1;
qry.Open;
FieldsObj := TJSONObject.Create;
FieldNameArray := TJSONArray.Create;
for I := 0 to qry.FieldCount - 1 do
FieldNameArray.Add(qry.Fields[I].FieldName);
FieldsObj.AddPair(TableName, FieldNameArray);
DataObj := TJSONObject.Create;
DataRows := TJSONArray.Create;
qry.First;
while not qry.Eof do
begin
RowFields := TJSONArray.Create;
for I := 0 to qry.FieldCount - 1 do
RowFields.Add(qry.Fields[I].AsString);
DataRows.Add(RowFields);
qry.Next;
end;
DataObj.AddPair('data', DataRows);
Result := TJSONArray.Create(FieldsObj, DataObj);
qry.Free;
Ve bu sonucudur:
{
"ProductID": "1",
"result": [{
"produkt": ["id", "parent_id", "full_name", "opcja_1", "opcja_2", "opcja_3", "opcja_4", "opcja_5", "opcja_6", "opcja_7", "opcja_8", "opcja_9", "opcja_10", "opcja_11", "opcja_12", "field_address1", "field_address2", "quantity", "opis", "zdjecie1", "zdjecie2", "zdjecie3", "samples", "link_stable0", "link_stable1", "link_stable2", "price1", "price2", "price3"]
}, {
"data": [
["1", "1", "name", "1", "1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "12", "10", "20", "1,2", "description of product", "http://www.vphosted.com/e6=0", "photo link2", "photo link 3", "sample project file link", "link option", "10", "link", "10", "link", "10"]
]
}]
}
Burada ne sorduğunuz belli değil. Bu kodun üretmekte olduğu JSON'u tüketmekte sorun yaşadığınızı ve PHP tarafından doğru bir şekilde tüketilen JSON üretildiğini ve üreticinin koduyla ilgili yanlış bir şey olmadığını öne sürüyorsunuz. * Tüketici * kodunuzu gerçekten göndermelisiniz ve nasıl ve neden sizin için çalışmadığını daha açık bir şekilde açıklamalısınız. – Deltics
Json'un seçilen yapısı çok garip. –
Sir Rufo'ya katılıyorum - seçilen yapı çok tuhaf ve en düşük seviyede JSON çiftlerinin olmaması sorunlara neden olacaktır. – Dsm