Yorumları: 225
Konuları: 41
Kayıt Tarihi: 10-11-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 392 Acemi
23-03-2019, Saat: 12:39
(Son Düzenleme: 23-03-2019, Saat: 14:45, Düzenleyen: CesuR.)
Merhaba,
Aşağıdaki json çıktısında, sağdan son 6 sonucun her birini bir değişkene almaya çalışıyorum. ( JSon bilgi her yenilendiğinde kendisine yeni rakamlar eklenip uzayıp gidiyor.)
Şuan için String olarak aldığım veriyi bir StringListe atıp son 6 tanesini alarak işlemi gerçekleştiriyorum. Bunun json tarafında daha farklı bir yolu var mı ? JSonArray diye bir yapı gördüm fakat çözemedim.
{"game":{"balls":"65,85,31,34,35,4,67,21,60,24,45,38,23,11,43,69 }}
Sonuç şöyle
D1=45
D2=38
D3=23
D4=11
D5=43
D6=69
Yorumları: 2.017
Konuları: 246
Kayıt Tarihi: 09-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 4.370 Uzman
23-03-2019, Saat: 13:43
(Son Düzenleme: 23-03-2019, Saat: 13:43, Düzenleyen: yhackup.)
balls bir object, array değil bu sebebten array alamazsın, object içerisinden stringi alıp virgüle göre split ile parçalayabilirsiniz.
{
"game":{
"balls":"65,85,31,34,35,4,67,21,60,24,45,38,23,11,43,69"
}
}
Yorumları: 4.224
Konuları: 379
Kayıt Tarihi: 07-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 16.975 Üstad
23-03-2019, Saat: 14:15
(Son Düzenleme: 23-03-2019, Saat: 14:40, Düzenleyen: TescilsizUzman.)
Merhaba,
@ yhackup 'un da belirttiği gibi JSON verisindeki balls tipinde yalnızca tek bir veri var. Array olarak tanımlanmamış.
JSON Array olarak çözümlemek için aşağıdaki gibi olması gerekiyordu.
{"game":{"balls":[65,85,31,34,35,4,67,21,60,24,45,38,23,11,43,69]}}
Rakamların ön ve son kısmına kare parantezler ( [ ]) ekleyerek, JSON Arraya dönüştürüp bu şekilde çözümleyebilirsiniz.
Bu durumda öncelikle veriyi bir JSON Obje olarak alıp, balls tipini TJSONArray'a dönüştürmeye zorlamak gerekiyor.
Sanırım bundan sonrasını halledersiniz.
Yorumları: 225
Konuları: 41
Kayıt Tarihi: 10-11-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 392 Acemi
23-03-2019, Saat: 14:25
(Son Düzenleme: 23-03-2019, Saat: 14:37, Düzenleyen: CesuR.)
Çok teşekkürler üstadım. JsonArray kullanımıda sayenizde öğrenmiş oldum emeğinize sağlık.
Alıntı: JSON verisindeki balls tipinde yalnızca tek bir veri var.
Böyle olsaydı array sayılabilir miydi ? Yanlış mı anladım.
{"game":{"id":54107,"is_current_game":true,"balls":"65,85,31,34,35,4,67,21,60,24,45,38,23,11,43,69,39,73,68,87,15,9,70 }}
Yeri gelmişken Json verileri delphi classlara dönüştüren güzel bir site buldum. Siz Json veriyi veriyorsunuz o delphi de sınıf haline getirip unit olarak size veriyor.
https://jsontodelphi.com/
Yorumları: 4.224
Konuları: 379
Kayıt Tarihi: 07-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 16.975 Üstad
23-03-2019, Saat: 14:33
(Son Düzenleme: 23-03-2019, Saat: 14:39, Düzenleyen: TescilsizUzman.)
Rica ederim,
Bilgilerimizi birleştirerek güçlendireceğiz.
Bu arada aldığınız JSON içeriğini kullanmadan önce balls tipini aşağıdaki gibi değiştirip, JSONarray'a dönüştürebilirsiniz.
strJSON.Insert(strJSON.IndexOf('balls') + Length('balls') + 2, '[');
strJSON.Insert(strJSON.IndexOf('}}'), ']');
Bu arada açtığınız konu başlığında son 5 bilgi, konu içerisinde son 6 bilgiyi almak istemişsiniz.
Yorumları: 225
Konuları: 41
Kayıt Tarihi: 10-11-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 392 Acemi
Evet haklısınız yanlış hesaplamışım konuyu yazarken 6 tanesine ihtiyacım olduğunu gördüm. Hemen düzeltiyorum.
Yorumları: 225
Konuları: 41
Kayıt Tarihi: 10-11-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 392 Acemi
(23-03-2019, Saat: 14:15)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Sanırım bundan sonrasını halledersiniz.
Buradaki P nedir. Undeclared identifier hatası aldım. Useslar da ekli . Bir pointer değişken mi .
JSonObj.P['game'].P['balls']
Yorumları: 4.224
Konuları: 379
Kayıt Tarihi: 07-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 16.975 Üstad
(23-03-2019, Saat: 16:38)CesuR Adlı Kullanıcıdan Alıntı: (23-03-2019, Saat: 14:15)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Sanırım bundan sonrasını halledersiniz.
Buradaki P nedir. Undeclared identifier hatası aldım. Useslar da ekli . Bir pointer değişken mi .
JSonObj.P['game'].P['balls']
Yeni sürüm ile birlikte gelen JSON property'i ifade etmektedir. Parametre olarak verilen tipi parse ederek, bir JSON obje döndürür. .V[' '] fonksiyonu ise verilen tipin değerini döndürür.
Bu özellik sanırım 10.3'te var.
Diğer sürümler için bunun yerine GetValue veya Get fonksiyonlarını kullanabilirsiniz.
|