【问题标题】:Specified object from JSONObject来自 JSONObject 的指定对象
【发布时间】:2016-04-01 11:11:49
【问题描述】:

我有JSONObject,其中包含如下所示,创建的类Markets 包含所有字段。我想将JSONObject 元素放入Markets 的创建对象中。

示例:Markets markets = new Markets(),然后将元素从JSONObject 放入markets,我希望能够得到markets.getInstrumentName()。我该怎么做?

我尝试使用Gson,比如Markets markets = gson2.fromJson(jsonObject, Markets.class);,但是有不同的类型,而且是错误的方式。

JSONObject:

{
  "map": {
    "netChange": -81.0,
    "instrumentType": "INDICES",
    "percentageChange": -1.31,
    "scalingFactor": 1,
    "epic": "IX.D.FTSE.DAILY.IP",
    "updateTime": "00:02:48",
    "updateTimeUTC": "23:02:48",
    "offer": 6095.8,
    "instrumentName": "FTSE 100",
    "high": 6188.3,
    "low": 6080.8,
    "streamingPricesAvailable": true,
    "marketStatus": "TRADEABLE",
    "delayTime": 0,
    "expiry": "DFB",
    "bid": 6094.8
  }
}

Markets:

class Markets {
    private double bid;
    private double offer;
    private int delayTime;
    private String epic;
    private String expiry;
    private double high;
    private double low;
    private String instrumentName;
    private String instrumentType;
    private String marketStatus;
    private double netChange;
    private double percentageChange;
    private int scalingFactor;
    private boolean streamingPricesAvailable;
    private String updateTime;
    private String updateTimeUTC;

    //getters and setters
}

【问题讨论】:

  • 你读过fancy manual吗?它充满了例子。
  • 我阅读了基本文档。
  • 你可能需要一个“地图”类,其中包含一个市场类型和命名地图的字段,如果这是你的困难的话
  • 我想要来自JSONObject 的所有数据在我的Markets 类中

标签: java json gson


【解决方案1】:

使用 Jackson 库

JSONObject jsonObject = //...
ObjectMapper mapper = new ObjectMapper();
Markets markets = mapper.readValue(jsonObject.toString(), Markets.class);

【讨论】:

  • 我需要同样的使用Gson
  • 你试过了吗? Markets markets = new Gson().fromJson(jsonObject.toString(), Markets.class);
  • 是的,它有效,我忘了写jsonObject.toString() 需要.toString() ;)
【解决方案2】:

这里是您想要将 JSON 转换为对象时的示例代码:

yourObject = new Gson().fromJson(yourJSONObject.toString(), YourObject.class);

我正在使用 Gson 2.4。而且效果很好。

compile 'com.google.code.gson:gson:2.4'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-01
    • 2021-05-24
    • 1970-01-01
    相关资源
    最近更新 更多