是否有通用的Java解析Json方法?

麦克风

不幸的是,我曾尝试过gson和Jackson解析器,但我达不到我想要的目标。

{
   "rateName": "My Special Rate",
   "adjustments":    [
            {
         "adjustmentType": "LOAN_AMOUNT_GREATER_THAN_550K",
         "rate": 0.75
      },
            {
         "adjustmentType": "AMORTIZATION_TERM_LESS_THAN_30_YEARS",
         "rate": -0.2
      }
   ],
   "errorTypes": [],
   "premiumTaxs": [],
   "renewalPremiums": [],
   "totalInitialRate": 1.95,
   "optimumPricing": false,
   "miPricingVO": null,
   "rateCardId": "BALS_NR",
   "ratingInfoBaseRate": 1.4
}

以上是我要解析的Json。我想创建通用方法,使用该方法可以轻松按名称访问值。例如:

  1. getName(rateName)-应返回“我的特别房价”
  2. getNameFromArray(adjustmentType,调整项)-应该返回'LOAN_AMOUNT_GREATER_THAN_550K'

有没有办法做到这一点?它应该是通用的,以便可以应用于任何Json文件。

附加信息:我尝试使用Gson,但这会解析整个文件,如果找到数组,则会引发错误。

JsonReader j = new JsonReader(new FileReader("Path of Json"));
        j.beginObject();
        while (j.hasNext()) {
            String name = j.nextName();

            if (name.equals("rateName")) {
                System.out.println(j.nextString());
            }
            System.out.println(name);
        }

我尝试过杰克逊,遇到了和格森一样的事情。

JsonFactory jfactory = new JsonFactory();
        JsonParser jParser = jfactory.createJsonParser("Path of Json");
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            System.out.println(jParser.getCurrentName());;
        }
蜂蜜

如果说通用库是指标准库,那么org.json就是那个库。

虽然不像GSON或Jackson那样直观,但很容易使用:

JSONObject jsonData = new JSONObject(jsonString);
String rateName= jsonData.getString("rateName");//My Special Rate

要解析数组,您需要循环:

JSONArray adjustments = jsonData.getJSONArray("adjustments");
for(int i = 0; i < adjustments.length(); i++){
   JSONObject adjustment = adjustments.getJSONObject(i);
   String adjustmentType = adjustment.getString("adjustmentType");
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java字节码是否有通用解析器?

来自分类Dev

是否有可能采用通用Comparable的方法?

来自分类Dev

是否有可能采用通用Comparable的方法?

来自分类Dev

Java中是否有通用枚举?

来自分类Dev

通用方法解析

来自分类Dev

Java通用类型解析

来自分类Dev

{play 2.3} Java通用动作(没有通用静态方法)

来自分类Dev

是否有正确的方法来解析 JavaScript 中带有循环的 JSON?

来自分类Dev

具有约束的通用方法的重载解析问题

来自分类Dev

Scala中具有“无法解析符号”错误的通用方法

来自分类Dev

从字符串解析通用枚举集的Java静态方法

来自分类Dev

std容器是否具有插入任何容器的通用方法?

来自分类Dev

是否有通用的Java方法来修剪对象图中的每个字符串?

来自分类Dev

GSON解析通用Json数组

来自分类Dev

Android中的通用JSON解析

来自分类Dev

GSON解析通用Json数组

来自分类Dev

是否有一种简单的方法可以通用地从字符串中解析数据以获取C#中不同类型的子类属性?

来自分类Dev

通用扩展方法解析失败

来自分类Dev

Java方法对具有通用参数的方法的引用

来自分类Dev

是否有Java的expand()方法?

来自分类Dev

通用方法和 JSON

来自分类Dev

使用Spray JSON将Spark DataFrame解析为JSON对象/数组的通用方法

来自分类Dev

查询DB并以Json格式返回结果的通用Java方法

来自分类Dev

如何编写具有通用类类型的Java方法?

来自分类Dev

如何编写具有通用类类型的Java方法?

来自分类Dev

使用Java反射调用具有通用参数的方法

来自分类Dev

node.js是否有任何适当的方法可以解析大量的JSON?(long,bigint,int64)

来自分类Dev

是否有本机JavaScript方法来解析格式不正确的JSON样字符串?

来自分类Dev

使用Gson将Json解析为具有通用字段的项目列表

Related 相关文章

  1. 1

    Java字节码是否有通用解析器?

  2. 2

    是否有可能采用通用Comparable的方法?

  3. 3

    是否有可能采用通用Comparable的方法?

  4. 4

    Java中是否有通用枚举?

  5. 5

    通用方法解析

  6. 6

    Java通用类型解析

  7. 7

    {play 2.3} Java通用动作(没有通用静态方法)

  8. 8

    是否有正确的方法来解析 JavaScript 中带有循环的 JSON?

  9. 9

    具有约束的通用方法的重载解析问题

  10. 10

    Scala中具有“无法解析符号”错误的通用方法

  11. 11

    从字符串解析通用枚举集的Java静态方法

  12. 12

    std容器是否具有插入任何容器的通用方法?

  13. 13

    是否有通用的Java方法来修剪对象图中的每个字符串?

  14. 14

    GSON解析通用Json数组

  15. 15

    Android中的通用JSON解析

  16. 16

    GSON解析通用Json数组

  17. 17

    是否有一种简单的方法可以通用地从字符串中解析数据以获取C#中不同类型的子类属性?

  18. 18

    通用扩展方法解析失败

  19. 19

    Java方法对具有通用参数的方法的引用

  20. 20

    是否有Java的expand()方法?

  21. 21

    通用方法和 JSON

  22. 22

    使用Spray JSON将Spark DataFrame解析为JSON对象/数组的通用方法

  23. 23

    查询DB并以Json格式返回结果的通用Java方法

  24. 24

    如何编写具有通用类类型的Java方法?

  25. 25

    如何编写具有通用类类型的Java方法?

  26. 26

    使用Java反射调用具有通用参数的方法

  27. 27

    node.js是否有任何适当的方法可以解析大量的JSON?(long,bigint,int64)

  28. 28

    是否有本机JavaScript方法来解析格式不正确的JSON样字符串?

  29. 29

    使用Gson将Json解析为具有通用字段的项目列表

热门标签

归档