如何在java中从json对象检索数据?
我正在尝试使用java从产品的JSON中检索值,即,如何在java中从json对象检索数据?,java,json,Java,Json,我正在尝试使用java从产品的JSON中检索值,即,80000,其中名称为“Camera”。谁能帮帮我吗? 霉菌代码: JSONObject arrayOfProducts=jsonObj.optJSONObject(“产品”); JSONArray products=arrayOfProducts.getJSONArray(“产品”); 对于(int i=0;i
80000
,其中名称为“Camera”。谁能帮帮我吗?
霉菌代码:
JSONObject arrayOfProducts=jsonObj.optJSONObject(“产品”);
JSONArray products=arrayOfProducts.getJSONArray(“产品”);
对于(int i=0;i
您的JSON错误
- 不要使用左/右引号,而是使用没有方向的引号
“产品”
错误:“产品”
- 每个JSON对象都应该包含在
中。将整个JSON文件内容包含在{}
中{}
在上述给定语法中,将[JSONObject]。获取[data\u type]([key\u name])
替换为 表示JSON的[JSONObject]
类型的变量。在您的示例中, 它是JSONObject
将对象
替换为该特定键处的值的数据类型 当前情况下,键[data\u type]
的值是“value”
是一个80000
。因此 应该是整数
将getInt
替换为需要检索其值的键,该键位于 大小写为“值”[key\u name]
objects.getInt(“value”)
以下是您的整体更新代码:
JSONObject arrayOfProducts = jsonObj.optJSONObject("Products");
JSONArray products = arrayOfProducts.getJSONArray("Product");
for (int i = 0; i < products.length(); i++) {
JSONObject objects = products.getJSONObject(i);
Iterator key = objects.keys();
while (key.hasNext()) {
String k = key.next().toString();
if(k.equals("Name")) {
if(objects.getString(k).equals("Camera")) {
System.out.println("\nKey : " + k + "\nName : " + objects.getString(k) + ", \nValue : " + objects.getInt("Value"));
}
}
}
}
JSONObject arrayOfProducts=jsonObj.optJSONObject(“产品”);
JSONArray products=arrayOfProducts.getJSONArray(“产品”);
对于(int i=0;i
为什么需要选择复杂的解决方案来解析这样的JSON
您应该使用定义一些实体,然后使用用于读取JSON值的库(例如jackson的“ObjectMapper”)将其解析为对象
你可以把所有复杂的部分留给他们,然后你就开始处理java对象。你的代码可能会重复。但是你的JSON不好。奇怪的引号和JSON对象必须以“{”开头,以“}”结尾。你如何创建jsonObj?你看到了什么错误?p.S.你可以像这样取“Name”:objects.getString(“Name”)并检查现有的“Name”(如果需要)如下:objects.has(“Name”)这是json的一部分。jsonObj包含整个json,我正试图通过它来解析json。编辑的引号您可以编辑上面的代码来检索Camera的值,即80000?replace System.out.println(“Key:+k+”,value:+objects.getString(k))在System.out.println(“键:+k+”,名称:+objects.getString(k)+”,值:+objects.getInt(“值”);
JSONObject arrayOfProducts = jsonObj.optJSONObject("Products");
JSONArray products = arrayOfProducts.getJSONArray("Product");
for (int i = 0; i < products.length(); i++) {
JSONObject objects = products.getJSONObject(i);
Iterator key = objects.keys();
while (key.hasNext()) {
String k = key.next().toString();
if(k.equals("Name")) {
if(objects.getString(k).equals("Camera")) {
System.out.println("Key : " + k + ", value : " + objects.getString(k));
}
}
}
JSONObject arrayOfProducts = jsonObj.optJSONObject("Products");
JSONArray products = arrayOfProducts.getJSONArray("Product");
for (int i = 0; i < products.length(); i++) {
JSONObject objects = products.getJSONObject(i);
Iterator key = objects.keys();
while (key.hasNext()) {
String k = key.next().toString();
if(k.equals("Name")) {
if(objects.getString(k).equals("Camera")) {
System.out.println("\nKey : " + k + "\nName : " + objects.getString(k) + ", \nValue : " + objects.getInt("Value"));
}
}
}
}