我有以下JSON字符串,我想使用android将json数组提取到单独的字符串中,但我面临JSON异常。
try
{
String str="[{'Festivals':{'Fesa1':'english is good ','Fesb1':'my english is not so accurate','Fesa2':'oriya is very nice language','Fesb2':'my oriya is absolutely good','Fesa3':'cricket is a very popular game ','Fesb3':'cricket is life for indian','Fesa4':'hockey is the original game for india','Fesb4':'hockey needs to improve ','Fesa5':'computer is a very functional device','Fesb5':'computer is very helpful to mankind'}}] ";
JSONArray jsonArray = new JSONArray(str);
String abc1=null;
String abc2=null;
String abc3=null;
int i2=0;
for(int i=0;i<jsonArray.length();i++)
{
JSONObject e = jsonArray.getJSONObject(i);
JSONObject jsonObject = e.getJSONObject("Festivals");
tt.setText(tt.getText().toString()+String.valueOf("Total Array Length: "+jsonArray.length()+"\n"));
for(int i1=0;i1<jsonObject.length();i1++)
{
i2=i1+1;
abc1=jsonObject.getString("Fesa"+i2);
abc2=jsonObject.getString("Fesb"+i2);
tt.setText(tt.getText().toString()+String.valueOf(abc1+" - "+abc2+" - "+" \n"));
}
}
}
catch (JSONException e)
{
tt.setText("JSON Exception");
}
所以,我收到JSONExcepiton错误。请帮帮我。请建议我一些解决方案
提前致谢!!!
答案 0 :(得分:1)
你的json无效。检查@ http://jsonlint.com/
应该是
[ // json array node
{ // json object node
"abc": { // json object abc
"name": "andy",
"blood": "o+",
"ge": 45
}
}
]
解析
JSONArray jarray = new JSONArray("your jsonstring");
for(int i=0;i<jarray.length();i++)
{
JSONObject jb = (JSONObject)jarray.get(i);
JSONObject jb1 = jb.getJSONObject("abc");
String name = jb1.getString("name");
// similarly blood and use getInt for ge
}
编辑:
将您的json更改为以下,并使用以下内容您将获得所有值
String jsonstring ="{"
+"abc"+": ["
+"{"
+ "Fesa"+":"+ "englishisgood"
+"},"
+"{"
+"Fesa"+":"+ "myenglishisnotsoaccurate"
+"},"
+"{"
+ "Fesa"+":"+ "germanisverynicelanguage"
+"}"+","
+"{"
+"Fesa"+":"+ "mygermanisabsolutelygood"
+"},"
+"{"
+"Fesa"+":"+ "cricketisaverypopulargame"
+"},"
+"{"
+"Fesa"+":"+ "cricketislifeforindian"
+"},"
+"{"
+"Fesa"+":"+ "hockeyistheoriginalgameforindia"
+"},"
+"{"
+"Fesa"+":"+ "hockeyneedstoimprove"
+"},"
+"{"
+"Fesa"+":"+ "computerisaveryfunctionaldevice"
+"},"
+"{"
+"Fesa"+":"+ "computerisveryhelpfultomankind"
+"},"
+"]"+
"}";
解析
try
{
JSONObject jsb = new JSONObject(jsonstring);
JSONArray jarray =jsb.getJSONArray("abc");
for(int i=0;i<jarray.length();i++)
{
JSONObject jb = (JSONObject)jarray.get(i);
String name = jb.getString("Fesa");
Log.i("..........",name);
Toast.makeText(getApplicationContext(), name, 1000).show();
}
}catch(Exception e)
{
e.printStackTrace();
}
答案 1 :(得分:0)
确保JSON有效作为上面的答案。如果有任何特殊字符,您将需要逃避它们,即
\" instead of "