2014-01-06 4 views
-3

в моем андроиде приложении я получил строку из другого устройства, как это:преобразовать строку в Json в андроиде

String json = "[{'name', '11', '-0.5'}, {'name2', '-12', '0.5'}]";

я хочу, чтобы преобразовать эту строку в нечто вроде ArrayList или JSONObject или JsonArray работать с в мое приложение

Я пробовал эти пути, но оба они бросают мне исключение

JSONArray jsonObj = new JSONArray(my_json_string);

ИЛИ

JSONObject jsonObj = new JSONObject(jsonString);

как я могу конвертировать строку в ArrayList или JSONObject работать?

+5

это не является допустимым JSON , Json всегда содержит пару ключей/значений. В вашем примере у вас есть только ключи или значения – Blackbelt

+1

'throw me the Exception' - тогда ** READ **, что сообщение об исключении с базовым пониманием может быть? –

ответ

0

Исключения, вероятно, потому, что ваш JSON не является действительным:

вот что должно работать:

{"data": [{"who": "name", "age": "11", "diff":"-0.5"}, 
    {"who": "name2", "age": "12", "diff":"-1.5"}]} 

поэкспериментировать с различными форматами вы можете использовать: http://json.parser.online.fr/

0

Это JsonArray из JsonObjects, поэтому код:

ArrayList<Model> list = new ArrayList<Model>(); 
JSONArray jsonObj = new JSONArray(my_json_string); 
Model model; 
JSONObject element; 
for(int i = 0, len = jsonObj.length(); i < len; i++) { 
    element = jsonObj.getJsonObject(i); 
    model = new Model(); 
    model.setName(element.getString("name")); 
    //..similarly set other properties 
    list.add(model); 
} 

Теперь у вас есть список сложных моделей, Model.java представляет собой отдельный класс данных с атрибутами.

+0

спасибо.i попробуйте это. но 'JSONArray jsonObj = new JSONArray (my_json_string);' эта строка бросает мне исключение –

+0

Добавьте его в try/catch – himanshurb

0

Это не действительный формат JSON. Пожалуйста, обратитесь к этому page, чтобы узнать, как выглядит правильный JSON.

Вы также можете использовать этот page для проверки ваших данных JSON.

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