2013-05-07 15 views
7

Ben bir hizmet isabet ve bazen geri böyle bir şey alıyorum:JSON-basit (Java) ile JSONObject veya JSONArray dönüşün nasıl yapılacağını nasıl anlarsınız?

{ "param1": "value1", "param2": "value2" } 

ve bunun gibi bazen alma dönüş:

[{ "param1": "value1", "param2": "value2" },{ "param1": "value1", "param2": "value2" }] 

nasıl alıyorum hangi anlatır? Ben getClass (ne zaman İkisi bir String değerlendirmek) ama bunu denerseniz: İkinci durumda

json = (JSONObject) new JSONParser().parse(result); 

Ben

org.json.simple.JSONArray cannot be cast to org.json.simple.JSONObject 

nasıl Bunu önlemek için bir istisna olsun? Geriye döneceğimi nasıl kontrol edeceğimi bilmek isterim. (I dizinini yapamaz böylece ilk vaka bazen o [] olacak ve sadece ilk karakteri kontrol daha temiz bir yol istiyorum.

bu denetler yöntemin bir çeşit Orada var?

+0

Dizenin başlayıp "[]' ile bitip bitmediğini kontrol etmek oldukça basit olmalı. Ne denedin? – ApproachingDarknessFish

+0

Varsa [] ile bitip bitmediğini anlatabilirim ama sorun şu ki ben bir string alıyorum "[{\" param1 \ "...}, {...}]" dönüştüremiyorum tekrar bir diziye. – PixMach

cevap

19

Basit bir Java:

Object obj = new JSONParser().parse(result); 
if (obj instanceof JSONObject) { 
    JSONObject jo = (JSONObject) obj; 
} else { 
    JSONArray ja = (JSONArray) obj; 
} 

Ayrıca (sözde) JSON bir [ veya { ile başlar eğer JSON yanlış tür ayrıştırma yükü önlemek istiyorsa sınamak Ama dikkatli olabilir. önde gelen boşluklar

+0

Teşekkürler. Bu benim sorumu yanıtladı. Şimdi geri kalanı anlamaya :) :) – PixMach

+0

Teşekkürler Budy. :) – Krishna

İlgili konular