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"
}
}
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
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
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
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.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
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
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(23-03-2019, Saat: 14:15)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [ÇÖZÜLDÜ] Windows Service içerisinden başka uygulama çalışmasını kontrol etme theSinan 2 180 08-06-2019, Saat: 12:17
Son Yorum: elixir84
  [ÇÖZÜLDÜ] Veritabanından hızlı veri çekmek için tavsiye wiseman 6 272 31-05-2019, Saat: 22:34
Son Yorum: frmman
  REST.Json, TJSon.JsonToObject sorunsalı Gürcan 14 634 27-05-2019, Saat: 11:33
Son Yorum: SimaWB
  [Çözüldü] - Google Cloud Platformunda OAuth 2.0 ile Dinamik Token Nasıl Alınır? Fesih ARSLAN 14 766 21-05-2019, Saat: 13:11
Son Yorum: Bay_Y
  Çözüldü Fastreport degisken alan yazdırma cinarbil 5 296 25-04-2019, Saat: 16:37
Son Yorum: cinarbil



Konuyu Okuyanlar: 1 Ziyaretçi