Java 从JSON结果中获取数据
我正在做一个android项目。 这是我的json字符串外观Java 从JSON结果中获取数据,java,android,arrays,json,Java,Android,Arrays,Json,我正在做一个android项目。 这是我的json字符串外观 {"objectA":{"objectB","objectC","objectD":[{"Element1":"value1","Element2":"value2"}]}} 我试图得到反对JSONArray 首先,我得到了jsonStr变量的JSON结果 然后我将objectD添加到JSONArray 然后我尝试获取该数组的值 for (int i = 0; i < array1.length(); i++) { JSON
{"objectA":{"objectB","objectC","objectD":[{"Element1":"value1","Element2":"value2"}]}}
我试图得到反对JSONArray
首先,我得到了jsonStr变量的JSON结果
然后我将objectD添加到JSONArray
然后我尝试获取该数组的值
for (int i = 0; i < array1.length(); i++) {
JSONObject c = array1.getJSONObject(i);
String myString1 = c.getString("Element1");
String myString2 = c.getString("Element2");
//Then I put those to HashMap
HashMap<String, String> p = new HashMap<String, String>();
p.put(Element1, myString1 );
p.put(Element2, myString2 );
ArrayList<HashMap<String, String>> q = new ArrayList<HashMap<String, String>>();
q.add(p);
}
当我调试代码时,它显示jsonStr具有json字符串
但是p和q没有值
我是如何获得这些值的???您提供的json不是有效的json。您的名称objectB和objectC没有值。我不知道这将如何影响后续的建议。 我有点惊讶json没有解析并抛出异常。也许它只是把不好的元素扔掉了 您试图从json的“根”获取objectD;它根本不存在。你必须先得到objectA;那就反对吧 @GaryBak推荐使用Jackson或GSON是附议的。它更容易维护
至于调试;没有值的p和q告诉我们的不多。jsonObj持有什么;array1支持什么?您可以提供的信息越多,就可以简化提供可能解决方案的过程。Move ArrayList q=new ArrayList;我是在外面做的。但它不起作用-@ρ∑ѕρєk在处理json数据时,我总是创建POJO对象,然后使用Jackson或Gson将数据转换为json格式。它使它变得更容易,更不容易出错。我发现Jackson更强大,但Gson更容易用于简单的情况。有人能在这方面提供帮助吗??
JSONArray array1 = jsonObj.getJSONArray("objectD");
for (int i = 0; i < array1.length(); i++) {
JSONObject c = array1.getJSONObject(i);
String myString1 = c.getString("Element1");
String myString2 = c.getString("Element2");
//Then I put those to HashMap
HashMap<String, String> p = new HashMap<String, String>();
p.put(Element1, myString1 );
p.put(Element2, myString2 );
ArrayList<HashMap<String, String>> q = new ArrayList<HashMap<String, String>>();
q.add(p);
}
JSONObject objA = jsonObj.getJSONObject("objectA");
JSONArray arrD = objA.getJSONArray("objectD");