2014-01-06 41 views
-3

在我的Android应用程序,我得到了来自其他设备像这样的字符串:字符串转换成JSON在Android的

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

我想这个字符串转换为类似的ArrayList或者JSONObject的或JsonArray与合作我的应用程序

我尝试了这些方法,但他们都丢给我一个异常

JSONArray jsonObj = new JSONArray(my_json_string);

OR

JSONObject jsonObj = new JSONObject(jsonString);

我如何转换字符串到ArrayList的或JSONObject的合作?

+5

它不是一个有效的JSON 。 Json始终包含一对键/值。在你的示例中,只有键或值 – Blackbelt

+1

'抛出一个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

这是一个JSONObjects JsonArray,因此代码:

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

thanks.i试试。但是'JSONArray jsonObj = new JSONArray(my_json_string);'这行引发了一个异常 –

+0

将它加入try/catch – himanshurb

0

这不是有效的JSON格式。请参阅此page以查看正确的JSON如何。

您也可以使用此page来验证您的JSON数据。