【问题标题】:REST Web Service JSONObject Data Binding Using Jackson使用 Jackson 的 REST Web 服务 JSONObject 数据绑定
【发布时间】:2017-04-28 04:30:48
【问题描述】:

我正在尝试使用杰克逊数据绑定为来自 REST Web 服务的以下 samplejson 响应创建客户端 pojo 类。

"txn": {
    "TXN_DATE": {
      "=": "20170428"
    },
    "TXN_AMT": {
      "=": "2000.00"
    }
    "TXN_TYPE": {
      "=": "SB"
    }
}

它是一种对象内的对象。所以我将 pojo 属性创建为

private Map<String, org.json.JSONObject> test2 = null;

如果我使用 org.json.JSONObject 那么我得到以下异常发生:

无法写入内容:找不到类的序列化程序 org.json.JSONObject 并且没有发现要创建的属性 BeanSerializer

否则,如果我使用 org.json.simple.JSONObject 或 net.sf.json.JSONObject,则不会发生异常,并且 json 到 pojo 的转换成功。

我的疑问是为什么 org.json.JSONObject 不支持,我应该在这种情况下使用哪个 json 包。 我也可以在 JSONObject 上使用Map&lt;String, Map&lt;String, String&gt;&gt;。哪一个更好。 请给我建议。

【问题讨论】:

    标签: java json rest jackson


    【解决方案1】:

    使用 org.json.JSONObject 而不是将其放在地图中。

    JSONObject jObject =  null;
    jObject = new JSONObject(String you want to parse);
    JSONObject jObject2 =jObject.getJSONObject("txn");
    JSONObject jobject3 = jObject2.getJSONObject("TXN_DATE");
    String jobject4 =  jobject3.getString("=");
    

    jobject4 会给出 20170428

    【讨论】:

    • JSONObject jobject3 = jObject2.jObject2("TXN_DATE");对吗?
    猜你喜欢
    • 2013-11-21
    • 1970-01-01
    • 2011-12-07
    • 2011-05-25
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多