2013-08-14 2 views
0

l получить строку с ответом с сервера. Я хочу сделать это JSONObject.JSONObject из строки на Android

л сделать

JSONObject jsonObj = new JSONObject(json); 

в формате JSON имеет

"{"sentences":[{"trans":"R\u0455R\u0491ReR\u0405","orig":"�\u0455�\u0491��\u0405","translit":"","src_translit":"R\u1E91Rg\u0300RoR\u1E90"}],"src":"ru","server_time":1}"

но jsonObj имеет

"{"sentences":[{"src_translit":"RẑRg̀RoRẐ","orig":"�ѕ�ґ��Ѕ","trans":"RѕRґReRЅ","translit":""}],"server_time":1,"src":"ru"}"

так, как я смогу получить значение из "транс": "RѕRґReRЅ"?

PS RѕRґReRЅ это "собственный" в нормальной кодировке

ответ

0

попробовать этот

JSONObject jsonObj = new JSONObject(json); 
    JSONArray sentences = jsonObj.getJSONArray("sentences"); 
    for(int i=0;i<sentences.length();i++){ 
    JSONObject number = sentences.getJSONObject(i); 
    String transValue = number.getString("trans"); 
} 
0

Если у вас уже есть jsonObj вы просто должны сделать:

try { 
// Getting Array of Sentences 
sentences = json.getJSONArray("sentences"); 

// looping through All Contacts 
for(int i = 0; i < sentences.length(); i++){ 
    JSONObject c = sentences.getJSONObject(i); 

    // get the value from trans 
    String trans = c.getString("trans");  
    //now you should save this string in an array 

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

но л имеют транс в «RѕRґReRЅ», но должны иметь «собственные» – user2542715

+0

Где вы получаете ваш JSON? Что такое кодировка вашей страны? Если вам нужно преобразовать, скажем, utf-8, вы должны: 'URLEncoder.encode (json_string,« UTF-8 »);' – Dyna

+0

У меня ошибка: «Ошибка анализа данных org.json.JSONException: Value % 7B% 22sentences% 22% 3A% 5B% 7B% 22trans% 22% 3A% 22R% 5Cu0455R% 5Cu0491ReR% 5Cu0405% 22% 2C% 22orig% 22% 3A% 22% EF% BF% BD% 5Cu0455% EF% BF % BD% 5Cu0491% EF% BF% BD% EF% BF% BD% 5Cu0405% 22% 2C% 22translit% 22% 3A% 22% 22% 2C% 22src_translit% 22% 3A% 22R% 5Cu1E91Rg% 5Cu0300RoR% 5Cu1E90% 22 % 7D% 5D% 2C% 22src% 22% 3A% 22ru% 22% 2C% 22server_time% 22% 3A24% 7D% 0A типа java.lang.String не может быть преобразовано в JSONObject " – user2542715

0

Сначала вы должны удалить начиная с конца строки и заканчивая вашей строки JSON (json), этим вашим JSON будет действительный json для этого вам нужно сделать:

json= json.substring(1, json.length()-1); 

После того, что вы делаете так:

JSONObject oJsonObject = new JSONObject(json); 
JSONArray oJsonArray = oJsonObject.getJSONArray("sentences"); 

for(int i=0; i<oJsonArray.length(); i++) 
{ 
    JSONObject oJsonObject1 = oJsonArray.getJSONObject(i); 
    String transValue = oJsonObject1 .getString("trans"); 
} 
+0

на JSONObject oJsonObject = новый JSONObject (json); У меня ошибка: Ошибка анализа данных org.json.JSONException: значения предложения типа java.lang.String не могут быть преобразованы в JSONObject – user2542715

+0

Можете ли вы показать строку ** json ** при этой ошибке –

+0

"{" предложения ": [ "транс": "R \ u0455R \ u0491ReR \ u0405", "туринг": "\ u0455 \ u0491 \ u0405", "транслит": "", "src_translit": "R \ u1E91Rg \ u0300RoR \ u1E90 "}]," src ":" ru "," server_time ": 1}" – user2542715

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