Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[Çözüldü] JSon String içindeki son altı bilgi
#1
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
Cevapla
#2
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"
}
}
WWW
Cevapla
#3
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. Smile
Cevapla
#4
Çok teşekkürler üstadım. JsonArray kullanımıda sayenizde öğrenmiş oldum emeğinize sağlık. Smile
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/
Cevapla
#5
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. Shy
Cevapla
#6
Evet haklısınız yanlış hesaplamışım konuyu yazarken 6 tanesine ihtiyacım olduğunu gördüm. Hemen düzeltiyorum.
Cevapla
#7
(23-03-2019, Saat: 14:15)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Sanırım bundan sonrasını halledersiniz. Smile
Buradaki P nedir. Undeclared identifier  hatası aldım. Useslar da ekli . Bir pointer değişken mi .
JSonObj.P['game'].P['balls']
Cevapla
#8
(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. Smile
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.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  AdoQuery ile ilgili bir sorun. (Çözüldü) Bay_Y 4 106 Dün, Saat: 10:58
Son Yorum: Bay_Y
  Klasör İçindeki Resimleri Gösterme sadoal351 5 353 13-04-2024, Saat: 22:40
Son Yorum: sadoal351
  Fastreport İçindekiler Sayfası Oluşturma [ÇÖZÜLDÜ] bydelphi 1 236 18-03-2024, Saat: 12:11
Son Yorum: bydelphi
  Çok Satırlı Filtreleme [Çözüldü] bünyamin68 12 1.351 14-02-2024, Saat: 22:42
Son Yorum: mustafaozpinar
  [ÇÖZÜLDÜ] macos işletim sistemine program yazmak shooterman 5 513 02-02-2024, Saat: 09:54
Son Yorum: shooterman



Konuyu Okuyanlar: 1 Ziyaretçi