如何将json respone设置为java对象

时间:2016-11-08 06:48:05

标签: java json spring

我有api并尝试访问链接:

server/apps/ProcessRequest?req={"agent_id":"id","proccode":"380000","agent_pass":"pass","req_datetime":"20161108132741","customer_id":"547201743150","product_code":"001002","rrn":"uniquecode"}

我的问题是上面的链接中的respone,我想将respone设置为java对象并使用它。

我得到了这个回复:

{
"resp_code": "0000",
"amount": "0",
"data": {
    "Status": "0000",
    "NomorPelanggan": "547",
    "IDPelanggan": "547",
    "Unsold": "[]",
    "Nama": "PLGN LPB., 05134710274",
    "TeleponUP": "123",
    "Daya": "2200",
    "KodeUP": "54720",
    "MaksimalKWH": "5000",
    "Tagihan": [
        {
            "Periode": "201611",
            "Total": 0
        }
    ],
    "NomorMeter": "05134710274",
    "Tarif": "R3",
    "TotalTagihan": "0",
    "ErrorMessage": "",
    "SessionId": "2016110813321820497",
    "Nominal": [
        20000,
        50000,
        100000,
        200000,
        500000,
        1000000,
        5000000,
        10000000,
        50000000
    ],
    "KodeDistribusi": "54"
},
"resp_desc": "Successful",
"proccode": "380000"}

如何将此响应设置为java对象?

api不属于我自己,我现在不是那个api的模型。

3 个答案:

答案 0 :(得分:1)

我认为你所追求的是序列化。如果你知道你将事先收到的Json的格式,你可以简单地使用Gson来解析Json并从中创建一个Java对象。

假设你有这个json:

100

尝试这样的事情:

#temporaly set max_colwidth to 100
with pd.option_context('display.max_colwidth', 100):
    print (df)
                                                       0   1
0  http://shakespeare.mit.edu/allswell/allswell.1.1.html  aa

请参阅the documentation

答案 1 :(得分:0)

如果你不确定de repsonse json的整个结构。

你可以简单地将响应字符串转换为Map(基于你知道根节点是json对象,而不是json数组)

通过fastjson api这样:

Map<String, Object> list = JSON.parseObject("...", new TypeReference<Map<String, Object>>() {});

&#39; ...&#39;是resposne字符串

答案 2 :(得分:0)

Gson,json-simple,jackson是你可以使用的少数几个库。但是对于其中的任何一个,你必须定义一个Java类结构来自己代表Json进行非编组。