2015-12-28 3 views
0

Здесь мой JSON данные мне нужно, чтобы преобразовать эти подачи объекта в массив JSonКак конвертировать JSONObject в JSONArray в Android?

{ 
"innings": { 
"b_1": { 
"batting_order": [ 
"s_watson", 
"a_rahane", 
"d_yagnik", 
"r_dravid", 
"s_binny", 
"b_hodge" 
], 
"runs": 185, 
"balls": 120, 
"fall_of_wickets": [ 
"AM Rahane at 71 runs, in 7.2 over", 
"DH Yagnik at 84 runs, in 9.3 over", 
"RS Dravid at 113 runs, in 13.2 over", 
"SR Watson at 159 runs, in 17.3 over" 
], 
"wide": 0, 
"run_rate": "9.25", 
"fours": 12, 
"run_str": "185/4 in 20.0", 
"wickets": 4, 
"wicket_order": [ 
"a_rahane", 
"d_yagnik", 
"r_dravid", 
"s_watson" 
], 
"extras": 10, 
"bowling_order": [ 
"a_chandila", 
"r_shukla", 
"j_faulkner", 
"k_cooper", 
"s_trivedi", 
"s_watson", 
"s_binny" 
], 
"key": "b_1", 
"noball": 0, 
"sixes": 7, 
"legbye": 0, 
"bye": 0, 
"overs": "20.0", 
"dotballs": 30, 
"partnerships": [ 
{ 
"player_a_six": 3, 
"player_a_four": 5, 
"first_ball": "bfee9a98-76a9-4959-b1cb-638989c96bff", 
"overs_balls": "7.1", 
"four": 6, 
"index": 1, 
"six": 3, 
"dismissed": false, 
"player_b_four": 1, 
"start_over": "0.1", 
"end_over": "7.1", 
"innings": "1", 
"player_b_runs": 16, 
"player_b_six": 0, 
"player_b_balls": 14, 
"runs": 71, 
"balls": 43, 
"player_b": "a_rahane", 
"player_a": "s_watson", 
"player_a_balls": 29, 
"last_ball": "4825aad2-25d8-434c-86bb-11f8eedbdc4f", 
"player_a_runs": 54, 
"match": "iplt20_2013_g30", 
"team": "b", 
"run_rate": "9.91" 
}, 
{ 
"player_a_six": 0, 
"player_a_four": 0, 
"first_ball": "c7351d98-9012-4361-ba2a-f5cd8665587d", 
"overs_balls": "2.1", 
"four": 1, 
"index": 2, 
"six": 0, 
"dismissed": true, 
"player_b_four": 0, 
"start_over": "7.2", 
"end_over": "9.2", 
"innings": "1", 
"player_b_runs": 4, 
"player_b_six": 0, 
"player_b_balls": 5, 
"runs": 13, 
"balls": 13, 
"player_b": "s_watson", 
"player_a": "a_rahane", 
"player_a_balls": 1, 
"last_ball": "c4134225-b057-4a43-9e0f-cd227b377540", 
"player_a_runs": 0, 
"match": "iplt20_2013_g30", 
"team": "b", 
"run_rate": "6.00" 
}, 
{ 
"player_a_six": 0, 
"player_a_four": 0, 
"first_ball": "17d6fc7f-d37e-45ee-9b0a-aaf15221d8c4", 
"overs_balls": "3.5", 
"four": 1, 
"index": 3, 
"six": 1, 
"dismissed": true, 
"player_b_four": 1, 
"start_over": "9.3", 
"end_over": "13.1", 
"innings": "1", 
"player_b_runs": 21, 
"player_b_six": 1, 
"player_b_balls": 14, 
"runs": 29, 
"balls": 23, 
"player_b": "s_watson", 
"player_a": "d_yagnik", 
"player_a_balls": 1, 
"last_ball": "cf9137bb-9fd7-49c1-9fdc-3e5c8492ee3b", 
"player_a_runs": 0, 
"match": "iplt20_2013_g30", 
"team": "b", 
"run_rate": "7.57" 
}, 
{ 
"player_a_six": 0, 
"player_a_four": 0, 
"first_ball": "0ea39992-7647-4916-bfcc-b2beba9dbf00", 
"overs_balls": "4.1", 
"four": 2, 
"index": 4, 
"six": 2, 
"dismissed": true, 
"player_b_four": 0, 
"start_over": "13.2", 
"end_over": "17.2", 
"innings": "1", 
"player_b_runs": 22, 
"player_b_six": 2, 
"player_b_balls": 12, 
"runs": 46, 
"balls": 25, 
"player_b": "s_watson", 
"player_a": "r_dravid", 
"player_a_balls": 1, 
"last_ball": "2eaaa026-485f-493c-9a70-551abc2bb83c", 
"player_a_runs": 0, 
"match": "iplt20_2013_g30", 
"team": "b", 
"run_rate": "11.04" 
}, 
{ 
"player_a_six": 0, 
"player_a_four": 0, 
"first_ball": "4720b7ff-e963-4bc8-9138-6124c2b261fc", 
"overs_balls": "2.4", 
"four": 2, 
"index": 5, 
"six": 1, 
"dismissed": true, 
"player_b_four": 1, 
"start_over": "17.3", 
"end_over": "19.6", 
"innings": "1", 
"player_b_runs": 16, 
"player_b_six": 1, 
"player_b_balls": 9, 
"runs": 26, 
"balls": 16, 
"player_b": "s_binny", 
"player_a": "s_watson", 
"player_a_balls": 1, 
"last_ball": "76481b09-e7e4-4097-9e88-b6884f069082", 
"player_a_runs": 0, 
"match": "iplt20_2013_g30", 
"team": "b", 
"run_rate": "9.75" 
} 
] 
}, 
"a_1": { 
"batting_order": [ 
"m_vijay", 
"m_hussey", 
"s_raina", 
"ms_dhoni", 
"r_jadeja", 
"d_bravo", 
"c_morris" 
], 
"runs": 186, 
"balls": 119, 
"fall_of_wickets": [ 
"M Vijay at 22 runs, in 2.3 over", 
"SK Raina at 112 runs, in 12.4 over", 
"MEK Hussey at 154 runs, in 16.1 over", 
"RA Jadeja at 154 runs, in 16.3 over", 
"MS Dhoni at 175 runs, in 18.6 over" 
], 
"wide": 0, 
"run_rate": "9.38", 
"fours": 18, 
"run_str": "186/5 in 19.5", 
"wickets": 5, 
"wicket_order": [ 
"m_vijay", 
"s_raina", 
"m_hussey", 
"r_jadeja", 
"ms_dhoni" 
], 
"extras": 7, 
"bowling_order": [ 
"m_sharma", 
"j_holder", 
"c_morris", 
"r_ashwin", 
"r_jadeja", 
"d_bravo" 
], 
"key": "a_1", 
"noball": 0, 
"sixes": 4, 
"legbye": 0, 
"bye": 0, 
"overs": "19.5", 
"dotballs": 21, 
"partnerships": [ 
{ 
"player_a_six": 0, 
"player_a_four": 0, 
"first_ball": "1dd3e8b3-b7a6-4417-9b2f-28b3b17353d5", 
"overs_balls": "2.2", 
"four": 2, 
"index": 1, 
"six": 1, 
"dismissed": false, 
"player_b_four": 2, 
"start_over": "0.1", 
"end_over": "2.2", 
"innings": "1", 
"player_b_runs": 19, 
"player_b_six": 1, 
"player_b_balls": 10, 
"runs": 22, 
"balls": 14, 
"player_b": "m_hussey", 
"player_a": "m_vijay", 
"player_a_balls": 4, 
"last_ball": "29fdf8bd-57dd-4ed6-982b-033662310923", 
"player_a_runs": 3, 
"match": "iplt20_2013_g30", 
"team": "a", 
"run_rate": "9.43" 
}, 
{ 
"player_a_six": 0, 
"player_a_four": 0, 
"first_ball": "777c4f5e-a00d-4ca8-9827-351305db096e", 
"overs_balls": "10.1", 
"four": 9, 
"index": 2, 
"six": 2, 
"dismissed": true, 
"player_b_four": 5, 
"start_over": "2.3", 
"end_over": "12.3", 
"innings": "1", 
"player_b_runs": 36, 
"player_b_six": 0, 
"player_b_balls": 26, 
"runs": 90, 
"balls": 61, 
"player_b": "m_hussey", 
"player_a": "m_vijay", 
"player_a_balls": 1, 
"last_ball": "e826e804-5b8c-4fd2-8771-d2257348f976", 
"player_a_runs": 0, 
"match": "iplt20_2013_g30", 
"team": "a", 
"run_rate": "8.85" 
}, 
{ 
"player_a_six": 0, 
"player_a_four": 0, 
"first_ball": "69a04225-ed8a-45ba-96af-a1ab8a5ae89e", 
"overs_balls": "3.3", 
"four": 6, 
"index": 3, 
"six": 0, 
"dismissed": true, 
"player_b_four": 6, 
"start_over": "12.4", 
"end_over": "15.6", 
"innings": "1", 
"player_b_runs": 33, 
"player_b_six": 0, 
"player_b_balls": 15, 
"runs": 42, 
"balls": 21, 
"player_b": "m_hussey", 
"player_a": "s_raina", 
"player_a_balls": 1, 
"last_ball": "bf356a48-5701-4d7a-abb0-025566679a1e", 
"player_a_runs": 0, 
"match": "iplt20_2013_g30", 
"team": "a", 
"run_rate": "12.00" 
}, 
{ 
"player_a_six": 0, 
"player_a_four": 0, 
"first_ball": "7106a8a0-021e-4049-807d-76debe55ac51", 
"overs_balls": "1.2", 
"four": 0, 
"index": 4, 
"six": 0, 
"dismissed": true, 
"player_b_four": 0, 
"start_over": "16.1", 
"end_over": "16.2", 
"innings": "1", 
"player_b_runs": 0, 
"player_b_six": 0, 
"player_b_balls": 0, 
"runs": 0, 
"balls": 2, 
"player_b": "m_hussey", 
"player_a": "ms_dhoni", 
"player_a_balls": 1, 
"last_ball": "5ab8afc4-a9eb-4b86-8a4b-41cf8a69af7e", 
"player_a_runs": 0, 
"match": "iplt20_2013_g30", 
"team": "a", 
"run_rate": "0.00" 
}, 
{ 
"player_a_six": 0, 
"player_a_four": 0, 
"first_ball": "c88b4bba-adf7-4de1-bf86-cc7b5d5e69ed", 
"overs_balls": "2.3", 
"four": 1, 
"index": 5, 
"six": 0, 
"dismissed": true, 
"player_b_four": 1, 
"start_over": "16.3", 
"end_over": "18.5", 
"innings": "1", 
"player_b_runs": 15, 
"player_b_six": 0, 
"player_b_balls": 9, 
"runs": 21, 
"balls": 15, 
"player_b": "ms_dhoni", 
"player_a": "r_jadeja", 
"player_a_balls": 1, 
"last_ball": "8456c578-31e0-41fe-a3ef-aef99dca68f3", 
"player_a_runs": 0, 
"match": "iplt20_2013_g30", 
"team": "a", 
"run_rate": "8.40" 
}, 
{ 
"player_a_six": 0, 
"player_a_four": 0, 
"first_ball": "81248550-5945-4b4d-80be-bf7fbec1b607", 
"overs_balls": "1.0", 
"four": 0, 
"index": 6, 
"six": 1, 
"dismissed": true, 
"player_b_four": 0, 
"start_over": "18.6", 
"end_over": "19.5", 
"innings": "1", 
"player_b_runs": 10, 
"player_b_six": 1, 
"player_b_balls": 4, 
"runs": 11, 
"balls": 6, 
"player_b": "d_bravo", 
"player_a": "ms_dhoni", 
"player_a_balls": 1, 
"last_ball": "161e36fd-0821-4697-affb-c99e0a45a66e", 
"player_a_runs": 0, 
"match": "iplt20_2013_g30", 
"team": "a", 
"run_rate": "11.00" 
} 
] 
}, 
"b_2": { 
"batting_order": [ 
"s_watson", 
"a_rahane", 
"d_yagnik", 
"r_dravid", 
"s_binny", 
"b_hodge" 
], 
"runs": 185, 
"balls": 120, 
"fall_of_wickets": [ 
"AM Rahane at 71 runs, in 7.2 over", 
"DH Yagnik at 84 runs, in 9.3 over", 
"RS Dravid at 113 runs, in 13.2 over", 
"SR Watson at 159 runs, in 17.3 over" 
], 
"wide": 0, 
"run_rate": "9.25", 
"fours": 12, 
"run_str": "185/4 in 20.0", 
"wickets": 4, 
"wicket_order": [ 
"a_rahane", 
"d_yagnik", 
"r_dravid", 
"s_watson" 
], 
"extras": 10, 
"bowling_order": [ 
"a_chandila", 
"r_shukla", 
"j_faulkner", 
"k_cooper", 
"s_trivedi", 
"s_watson", 
"s_binny" 
], 
"key": "b_1", 
"noball": 0, 
"sixes": 7, 
"legbye": 0, 
"bye": 0, 
"overs": "20.0", 
"dotballs": 30, 
"partnerships": [ 
{ 
"player_a_six": 3, 
"player_a_four": 5, 
"first_ball": "bfee9a98-76a9-4959-b1cb-638989c96bff", 
"overs_balls": "7.1", 
"four": 6, 
"index": 1, 
"six": 3, 
"dismissed": false, 
"player_b_four": 1, 
"start_over": "0.1", 
"end_over": "7.1", 
"innings": "1", 
"player_b_runs": 16, 
"player_b_six": 0, 
"player_b_balls": 14, 
"runs": 71, 
"balls": 43, 
"player_b": "a_rahane", 
"player_a": "s_watson", 
"player_a_balls": 29, 
"last_ball": "4825aad2-25d8-434c-86bb-11f8eedbdc4f", 
"player_a_runs": 54, 
"match": "iplt20_2013_g30", 
"team": "b", 
"run_rate": "9.91" 
}, 
{ 
"player_a_six": 0, 
"player_a_four": 0, 
"first_ball": "c7351d98-9012-4361-ba2a-f5cd8665587d", 
"overs_balls": "2.1", 
"four": 1, 
"index": 2, 
"six": 0, 
"dismissed": true, 
"player_b_four": 0, 
"start_over": "7.2", 
"end_over": "9.2", 
"innings": "1", 
"player_b_runs": 4, 
"player_b_six": 0, 
"player_b_balls": 5, 
"runs": 13, 
"balls": 13, 
"player_b": "s_watson", 
"player_a": "a_rahane", 
"player_a_balls": 1, 
"last_ball": "c4134225-b057-4a43-9e0f-cd227b377540", 
"player_a_runs": 0, 
"match": "iplt20_2013_g30", 
"team": "b", 
"run_rate": "6.00" 
}, 
{ 
"player_a_six": 0, 
"player_a_four": 0, 
"first_ball": "17d6fc7f-d37e-45ee-9b0a-aaf15221d8c4", 
"overs_balls": "3.5", 
"four": 1, 
"index": 3, 
"six": 1, 
"dismissed": true, 
"player_b_four": 1, 
"start_over": "9.3", 
"end_over": "13.1", 
"innings": "1", 
"player_b_runs": 21, 
"player_b_six": 1, 
"player_b_balls": 14, 
"runs": 29, 
"balls": 23, 
"player_b": "s_watson", 
"player_a": "d_yagnik", 
"player_a_balls": 1, 
"last_ball": "cf9137bb-9fd7-49c1-9fdc-3e5c8492ee3b", 
"player_a_runs": 0, 
"match": "iplt20_2013_g30", 
"team": "b", 
"run_rate": "7.57" 
}, 
{ 
"player_a_six": 0, 
"player_a_four": 0, 
"first_ball": "0ea39992-7647-4916-bfcc-b2beba9dbf00", 
"overs_balls": "4.1", 
"four": 2, 
"index": 4, 
"six": 2, 
"dismissed": true, 
"player_b_four": 0, 
"start_over": "13.2", 
"end_over": "17.2", 
"innings": "1", 
"player_b_runs": 22, 
"player_b_six": 2, 
"player_b_balls": 12, 
"runs": 46, 
"balls": 25, 
"player_b": "s_watson", 
"player_a": "r_dravid", 
"player_a_balls": 1, 
"last_ball": "2eaaa026-485f-493c-9a70-551abc2bb83c", 
"player_a_runs": 0, 
"match": "iplt20_2013_g30", 
"team": "b", 
"run_rate": "11.04" 
}, 
{ 
"player_a_six": 0, 
"player_a_four": 0, 
"first_ball": "4720b7ff-e963-4bc8-9138-6124c2b261fc", 
"overs_balls": "2.4", 
"four": 2, 
"index": 5, 
"six": 1, 
"dismissed": true, 
"player_b_four": 1, 
"start_over": "17.3", 
"end_over": "19.6", 
"innings": "1", 
"player_b_runs": 16, 
"player_b_six": 1, 
"player_b_balls": 9, 
"runs": 26, 
"balls": 16, 
"player_b": "s_binny", 
"player_a": "s_watson", 
"player_a_balls": 1, 
"last_ball": "76481b09-e7e4-4097-9e88-b6884f069082", 
"player_a_runs": 0, 
"match": "iplt20_2013_g30", 
"team": "b", 
"run_rate": "9.75" 
} 
] 
} 
}, 
"title": "Chennai Super Kings vs Rajasthan Royals - 30th Match - IPL T20 2013", 
"dl_applied": false, 
} 

Здесь, я хочу, чтобы получить результат, как показано ниже

{ 
    "innings": [ 
     { 
      "name":"b_1", 
      "batting_order": [ 
"s_watson", 
"a_rahane", 
"d_yagnik", 
"r_dravid", 
"s_binny", 
"b_hodge" 
], 
     }, 
     { 
     "name":"a_1", 
     "batting_order": [ 
"s_watson", 
"a_rahane", 
"d_yagnik", 
"r_dravid", 
"s_binny", 
"b_hodge" 
], 
     } 
    ] 
} 

Как я могу преобразовать подачи объекта в JSONArray в андроиде?

Пожалуйста, помогите решить эту проблему.

+0

Ваш первый json ошибочен. пожалуйста, проверьте здесь http://jsonlint.com/ – Tauqir

+0

Возможный дубликат [Как разобрать JSON в Java] (http://stackoverflow.com/questions/2591098/how-to-parse-json-in-java) – Mohit

+0

Ваш json недействителен ... – Thalaivar

ответ

0

Попробуйте это:

Код:

ArrayList innings_list = новый ArrayList();

JSONArray jsonArrayInnings = new JSONArray(); 
    JSONObject objectInnings = new JSONObject(); 
    try { 


     JSONObject myObject = new JSONObject(" Your JSOn"); 


     JSONObject innings = myObject.getJSONObject("innings"); 
     Iterator<String> iter = innings.keys(); 

     while (iter.hasNext()) { 
      String key = iter.next(); 
      Log.e("inningskey", key); 
      try { 


       JSONObject object = innings.getJSONObject(key); 

       JSONObject objectKey = new JSONObject(); 
       objectKey.put("name", key); 


       JSONArray jsonArrayBbatting_order = object.getJSONArray("batting_order"); 


       objectKey.put("batting_order", jsonArrayBbatting_order); 
        Log.e(" objectKey ", objectKey.toString()); 



       jsonArrayInnings.put(objectKey); 
        Log.e(" objectKey ", objectKey.toString()); 

      } catch (JSONException e) { 
       // Something went wrong! 
      } 
     } 
     objectInnings.put("innings",jsonArrayInnings); 
      Log.e("objectInnings ", objectInnings.toString()); 

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


} 
+0

Как сохранить порядок, как в моем сообщении b_1, a_1 и b_2, как это ????? –

0

Первые ваши данные Json кажутся очень сложными и нечетко классифицированными, что усложнит вашу работу, если у вас есть доступ к заднему концу этих данных, попробуйте сделать их более понятными, чтобы упростить вашу работу.

Во-вторых, чтобы изменить данные в массив, сначала вы должны иметь их в качестве объекта Json, в случае, если ваши данные в формате строки используют

JSONObject object = new JSONObject(JsonString); 

и, наконец, чтобы преобразовать объект в массив использование

JSONArray channelList = object.getJSONArray("Key word"); 

Обязательно используйте соответствующее ключевое слово, чтобы получить правильный массив. например, в вашем случае, если вы использовали "B_1" в качестве ключевого слова, которое вы получите "batting_order": [ "s_watson", "a_rahane", "d_yagnik", "r_dravid", «s_binny ", " b_hodge " ] как первый элемент в вашем массиве, « работает »: 185 будет вторым и так далее.

+0

Я отредактировал мое сообщение снова и скажите –

+0

вы понимаете мой вопрос ясно –

+0

Я хочу преобразовать весь объект innings в JSONArray. Я также отправляю exmple. –

Смежные вопросы