Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中从Json对象获取值?_Java_Json - Fatal编程技术网

如何在Java中从Json对象获取值?

如何在Java中从Json对象获取值?,java,json,Java,Json,我在一个名为output的字符串变量中存储了一个Json对象 假设 字符串输出 此输出变量包含一个json对象 下面是输出变量所持有的json对象 如何访问价格中的价格货币 "prices": [ { "price_label": "", "price_currency": "USD", "price_wholesale": 32.00, "price_retail": 70.00, "price_cur

我在一个名为output的字符串变量中存储了一个Json对象

假设

字符串输出

此输出变量包含一个json对象

下面是输出变量所持有的json对象

如何访问价格中的价格货币

"prices": [
      {
        "price_label": "",
        "price_currency": "USD",
        "price_wholesale": 32.00,
        "price_retail": 70.00,
        "price_currency_retail": "USD"
      }
  ],
  "deliveries": [{
      "delivery_name": "Zappos Holiday",
      "delivery_code": "",
      "style_display_order": 2,
      "season_name": "Holiday",
      "season_year" : "2017",
      "season_code": "",
      "date_cancel": "",
      "date_delivery_start": "",
      "date_delivery_end": "",
      "public": "0",
      "style_comments": ""
    },

有许多可能性:

  • 在bean中转换json(使用Gson或更快的Jackson之类的库)
  • 在映射中转换json(始终使用Gson或Jackson之类的库)
  • 使用正则表达式直接访问所需字段(非常复杂)
  • 编写解析器
  • 使用库使用Json路径直接访问字段
前面的每一种可能性都有利弊

例如,如果您需要一个特定字段,但不知道整个文档的结构,那么可以使用json path

如果需要将整个json作为一个对象进行管理以在本地保存它,请将其转换为bean


依此类推。

在java中,您有一个JSONObjet类,您可以在本例中使用它


一些指向java文档的链接-->

如果您使用java 7中引入的新javax.json包,那么它非常简单:

例如:

JsonReader jsonReader = Json.createReader(new StringReader(yourString));
JsonArray prices = jsonReader.readArray();
for (JsonValue price : prices){
    // ...
}
jsonReader.close();

首先,您说您的响应值是一个字符串输出,下面是在JAVA中解析JSON对象的步骤

  • 将字符串值解析为JSONObject,让我将其命名为jsonRet
  • 然后解析这个
  • jsonRet.getJSONArray(“价格”)

    这一步还将得到一个JSON价格数组,我称之为prices

    价格数组作为JSONObject 那就做吧 price.getString(“价格/货币”)

    这一步你得到一个字符串值,这将是你想要的

    有关更多信息,我建议您使用谷歌搜索关键字Java JSON,这将有助于您的理解。

    可能重复的