2013-09-25 2 views
0

у меня есть ответ J-сын, как показано ниже,Как разобрать объект json с двумя значениями в android?

{ 
"client_id": "1", 
"template_id": "4", 
"scrolling_text": "scrolling Text for android", 
"bottom": "scrolling Text for android", 
"Left": [ 
    "http://www.qwerty.com/iDigitalSign/img/files/20130925043454Chrysanthemum.jpg", 
    "http://www.qwerty.com/iDigitalSign/img/files/RightTulips.jpg" 
], 
"Right": [ 
    "http://www.qwerty.com/iDigitalSign/img/files/BottomKit_Kat_Dancing_Kids_TV_Commercial_-_YouTube.3gp" 
] 
} 

Мой синтаксический анализ

InputStream in = response.getEntity().getContent(); 
      Json_response json_res_class = new Json_response(); 
      String a = json_res_class.convertStreamToString(in); 


      try { 
       jsonarray = new JSONArray("[" + a + "]"); 
       json = jsonarray.getJSONObject(0); 

       String client_id = json.getString("client_id"); 
       String template_id = json.getString("template_id"); 
       scrolling_text = json.getString("scrolling_text"); 
       String bottom = json.getString("bottom"); 
       Left = json.getString("Left"); 
       videoPath = json.getString("Right"); 



      } catch (Exception e) { 
       e.printStackTrace(); 
     } 

я разобрать все вещи, но я хочу поместить Left значение объекта по одному в списке массива. Я не знаю, как это сделать. Может ли кто-нибудь узнать, помогите мне решить этот вопрос?

ответ

3

Для левых & Правильно, не используйте json.getString, используйте json.getJSONArray («Left»);

Тогда можно перебирать, как это:

for (int i=0; i < jArray.length(); i++) 
{ 
    try { 
     String itemInArray = jArray.getString(i); 
     // Pulling items from the array 
    } catch (JSONException e) { 
     // Oops 
    } 
} 
+0

как я могу прочитать оставил правый объект. – Yugesh

+0

k k теперь только прочитал ваш полный ответ, я получил его. Попробуйте. – Yugesh

0

использовать это

try { 
      jsonarray = new JSONArray("[" + a + "]"); 
      json = jsonarray.getJSONObject(0); 

      String client_id = json.getString("client_id"); 
      String template_id = json.getString("template_id"); 
      scrolling_text = json.getString("scrolling_text"); 
      String bottom = json.getString("bottom"); 

      String Left[] = json.getString("Left").split(","); 
      videoPath = json.getString("Right"); 



     } catch (Exception e) { 
      e.printStackTrace(); 
    } 
0

Может быть, это поможет вам.

try { 
     JSONObject jsonObject = new JSONObject(a); //a = your Json responce string 

     Map<String, Object> map = new HashMap<String, Object>(); 
     Iterator iter = jsonObject.keys(); 
     while (iter.hasNext()) { 
      String key = (String) iter.next(); 
      Object value = jsonObject.get(key); 
      map.put(key, value); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

Затем вы можете привести значение в строку или JSONArray если значение: "Left" или "Right"

1
{ // json object node 
"client_id": "1", 
"template_id": "4", 
"scrolling_text": "scrolling Text for android", 
"bottom": "scrolling Text for android", 
"Left": [ // json array left 

    try { 
      JSONObject jb = new JSONObject("mysonstring"); 
      JSONArray jr = (JSONArray)jb.getJSONArray("Left"); 
        // simialr for right 
      for(int i=0;i< jr.length();i++) 
      { 
        String url = jr.getString(i); 
        Log.i("url.....",url); 
      } 

    }catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 
0

U можно использовать gson и просто создать класс

public class Response { 
    private long id; 
    private long template_id; 
    private String scrolling_text; 
    private String bottom; 
    private String[] Left; 
    private String[] Right; 
} 

И чем просто позвонить:

Response response = new Gson().fromJson(a, Response.class); 
Смежные вопросы