gpt4 book ai didi

java - java中如何从json对象中获取数据?

转载 作者:行者123 更新时间:2023-12-02 10:32:33 25 4
gpt4 key购买 nike

我正在尝试使用 java.io 从产品的 JSON 中检索值,即 80000,其中名称为“Camera”。有人可以帮我吗?

{
"Products":{  
      "Product":[  
         {  
            "Name":"Tv",
            "Value":50000
         },
         {  
            "Name":"Camera",
            "Value":80000
         },
         {  
            "Name":"Phone",
            "Value":15000
         },
         
      ]
   }
}

我的代码:

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));
}
}
}

最佳答案

如果要获取 JSON 中键值对中的值,则需要使用以下语法:

  • [JSONObject].get[data_type]([key_name])

    在上面给出的语法中,将 [JSONObject] 替换为表示 JSON 的 JSONObject 类型的变量。就你而言,它是对象

    [data_type] 替换为该特定键处值的数据类型。在里面当前情况下,键“Value”的值是80000是一个Integer..因此它应该是getInt

    [key_name] 替换为您需要检索其值的键,该键位于您的情况是“值”

因此,您需要用来获取值 80000 以及“Camera”部分的代码片段是: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"));
}
}
}
}

关于java - java中如何从json对象中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53532730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com