Java 什么';字符串有什么问题;jo";当解析json时?
我有一个json字符串:Java 什么';字符串有什么问题;jo";当解析json时?,java,android,json,Java,Android,Json,我有一个json字符串: String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"jo\"}]}}"; JSONObject users = new JSONObject(response); JSONArray sub = users.getJSONArray("first"); String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"jo\"}]
String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"jo\"}]}}";
JSONObject users = new JSONObject(response);
JSONArray sub = users.getJSONArray("first");
String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"jo\"}]}}";
//String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"other\"}]}}";
JSONObject users;
try {
users = new JSONObject(jsonString);
users=users.getJSONObject("first");
JSONArray sub = users.getJSONArray("1");
System.out.println(sub.get(0));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但是在JSONArray
sub中,我有一个错误:
org.json.JSONException
在org.json.json.typeMismatch
但如果我有:
String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"other\"}]}}";
JSONObject users = new JSONObject(response);
JSONArray sub = users.getJSONArray("first");
它没有给出任何错误
为什么使用字符串“jo”我有一个错误?您的json字符串是错误的。没有任何
JsonArray
如下更改字符串:
String jsonString = "{\"first\":[{\"id\":1,\"name\":\"name1\"},{\"id\":2,\"name\":\"name2\"}]}";
JSONObject users = new JSONObject(jsonString);
JSONArray sub = users.getJSONArray("first");
for (int i = 0; i < sub.length(); i++) {
JSONObject user = sub.getJSONObject(i);
String userID = user.gatInt("id");
String userName = user.gatString("name");
}
String jsonString=“{\'first\':[{\'id\':1,\'name\':\'name1\',{\'id\':2,\'name\':\'name2\'}”;
JSONObject用户=新的JSONObject(jsonString);
JSONArray sub=users.getJSONArray(“第一”);
对于(int i=0;i
首先不是JSONArray,而是JSONObject。因此,将其强制转换为JSONObject,然后从中获得1。您将获得JSONArray
下面是两个json字符串的工作示例:
String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"jo\"}]}}";
JSONObject users = new JSONObject(response);
JSONArray sub = users.getJSONArray("first");
String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"jo\"}]}}";
//String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"other\"}]}}";
JSONObject users;
try {
users = new JSONObject(jsonString);
users=users.getJSONObject("first");
JSONArray sub = users.getJSONArray("1");
System.out.println(sub.get(0));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
输出:
{“name”:“jo”,“id”:1}您确定由于字符串更改为“jo”而出现此类错误,因为我觉得这似乎没有问题。 我对您的代码做了一些修改,效果很好:
String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"jo\"}]}}";
JSONObject users = JSON.parse(jsonString);
JSONArray sub = users.first;
你确定???这里没有任何问题是的,我正在Android中测试。除非在第一个语法中有两个单引号(“”),否则这里没有问题。使用jsonlint或codebeautify验证您的json。我没有看到您在构造JSONObject或解析JSONArray时使用
jsonString
。{“1\”:[{“id\”:1,“name\”:“other\”}
不是JSONArray,而是JSONObject。两个jsonString
示例都失败,并出现相同的错误。为什么这里有main(String[]args)
函数?AndroidI给出了一个工作示例。它不是平台specific@ArashHatami在哪里写的是与android相关的问题?@vikastandon问题的android
标签。也。