如何从Java中获取Json Object的值?

时间:2018-05-24 15:48:52

标签: java json

我已将一个Json对象存储在一个名为output的变量中。

假设,

字符串输出;

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

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

如何访问价格中的price_currency?

"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": ""
    },

4 个答案:

答案 0 :(得分:2)

有很多可能性:

  • 转换bean中的json(使用像Gson或Faster Jackson这样的库)
  • 转换地图中的json(总是使用像Gson或Faster Jackson这样的库)
  • 使用正则表达式(非常复杂)直接访问所需字段
  • 编写解析器
  • 使用库使用Json路径直接访问字段

以前的每一种可能性都有利有弊。

例如,如果您需要特定字段但不了解整个文档的结构,则可以使用json路径。

如果你需要管理整个json作为保存它的对象,请在本地将其转换为bean。

等等。

答案 1 :(得分:0)

如果您使用Java 7中引入的新javax.json包,这非常简单: https://docs.oracle.com/javaee/7/api/javax/json/package-summary.html

示例:

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

答案 2 :(得分:0)

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

  1. 将您的字符串值解析为JSONObject,让我将其命名为jsonRet。
  2. 然后解析此
  3.   

    jsonRet.getJSONArray("价格&#34)

    这一步你还得到一个JSON数组的价格让我称之为价格

      

    价格数组作为JSONObject   然后做   price.getString(" PRICE_CURRENCY&#34)

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

    有关详细信息,建议您使用Google搜索关键字 Java JSON ,以便您理解。

答案 3 :(得分:-2)

java中的

您有JSONObjet类,在这种情况下您可以使用它。

指向java doc的一些链接 - > click