【问题标题】:Convert a Dynamic JSON String to a HashMap将动态 JSON 字符串转换为 HashMap
【发布时间】:2017-03-09 11:32:01
【问题描述】:

我有一个带有一些动态属性的 JSONObject,我想将其转换为一个类,我在 SO 上尝试了很多示例,但没有解决方案。

我的 json 字符串是这样的

{
"result": {
    "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q",
    "assets": {
        "r9F6wk8HkXrgYWoJ7fsv4VrUBVoqDVtzkH": [
            {
                "currency": "BTC",
                "value": "5444166510000000e-26"
            }
        ],
        "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8": [
            {
                "currency": "EUR",
                "value": "4000000000000000e-27"
            }
        ],
        "rPU6VbckqCLW4kb51CWqZdxvYyQrQVsnSj": [
            {
                "currency": "BTC",
                "value": "1029900000000000e-26"
            }
        ],
        "rpR95n1iFkTqpoy1e878f4Z1pVHVtWKMNQ": [
            {
                "currency": "BTC",
                "value": "4000000000000000e-30"
            }
        ],
        "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6": [
            {
                "currency": "BTC",
                "value": "8700000000000000e-30"
            }
        ]
    },
    "balances": {
        "rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ": [
            {
                "currency": "EUR",
                "value": "29826.1965999999"
            }
        ],
        "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt": [
            {
                "currency": "USD",
                "value": "13857.70416"
            }
        ]
    },
    "ledger_hash": "980FECF48CA4BFDEC896692C31A50D484BDFE865EC101B00259C413AA3DBD672",
    "ledger_index": 14483212,
    "obligations": {
        "BTC": "5908.324927635318",
        "EUR": "992471.7419793958",
        "GBP": "4991.38706013193",
        "USD": "1997134.20229482"
    },
    "status": "success",
    "validated": true
}
}

有什么我可以从 json.org 或 ObjectMapper 使用的东西吗?

唯一给我的问题是资产和余额,我将感谢所有正确方向的帮助

【问题讨论】:

  • 有了ObjectMapper,你试过了吗:MyClass obj = mapper.readValue(jsonInString, MyClass.class);
  • 你能分享你当前的代码,你卡在哪里了吗?
  • 虽然没有使用ObjectMapper,但必须有一些json.org等价于GSON提供here

标签: java json json-deserialization


【解决方案1】:

您应该能够将其反序列化为如下类:

public class Response {
    private Result result;
}

public class Result {
    private String account;
    private Map<String, List<Asset>> assets;
    private Map<String, List<Asset>> balances;
    private String ledger_hash;
    private String ledger_index;
    private Map<String, String> obligations;
    private String status;
    private boolean validated;
}

public class Asset {
    private String currency;
    private String value;
}

【讨论】:

    猜你喜欢
    • 2014-03-10
    • 1970-01-01
    • 2021-01-13
    • 2020-07-26
    • 1970-01-01
    • 2014-02-08
    • 2011-02-02
    • 2016-06-28
    相关资源
    最近更新 更多