【问题标题】:Extracting the value of attribute from a given string [duplicate]从给定字符串中提取属性值[重复]
【发布时间】:2022-01-18 07:57:08
【问题描述】:

我有一个名为 getPayDetails() 的方法,它的返回类型是一个字符串

pay.getPaymentDetails(),返回类型为字符串,返回如下字符串

[
   {
      "mcTtid":201657083281,
      "cardLast4Digits":"0887",
      "paymentType":"CREDIT CARD",
      "originalPaymentCategory":{
         "code":"Q",
         "name":"CREDIT CARD"
      }
   },
   {
      "veTtid":21656148003,
      "cardLast4Digits":"4777",
      "paymentType":"GIFT CARD",
      "originalPaymentCategory":{
         "code":"Q",
         "name":"GIFT CARD"
      }
   },
   {
      "mcTtid":201625819,
      "cardLast4Digits":"8388",
      "paymentType":"GIFT CARD",
      "originalPaymentCategory":{
         "code":"w",
         "name":"GIFT CARD"
      }
   }
]

我需要从上面的字符串中提取属性 paymentType 的值,所以上面字符串中属性 paymentType 的值是单独的字符串变量中的 CREDIT CARD。我该怎么做?

【问题讨论】:

  • 请注意,虽然返回 typeString(根据您的描述),但它实际上代表 JSON,因此您需要解析该 JSON。我假设这个方法实际上做了一个 web 服务调用或类似的东西,因此返回一个 JSON - 如果它在内部创建 JSON,并且在进行本地调用时你必须再次解析它,我会认为这是一个糟糕的设计。

标签: java java-8


【解决方案1】:

我建议使用非常简单的org.json 库。

之后是这样的

import org.json.*;

String jsonString = ... ; //assign your JSON String here
JSONArray arr = new JSONArray(jsonString);
for (int i = 0; i < arr.length(); i++)
{
    String paymentType = arr.getJSONObject(i).getString("paymentType");
}

【讨论】:

    猜你喜欢
    • 2023-03-16
    • 2013-07-11
    • 2014-06-09
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多