{"data":{"type":"posts","attributes":{"content":"xiexie"},"relationships":{"discussion":{"data":{"type":"discussions","id":"99"}}}}}不是說list不能指定key嗎。那么只能用map來層層鑲嵌了嗎。可是,,,這。。。這。。。


是這樣嗎?我怎么有點不信,感覺不好

uj5u.com熱心網友回復:
[{
"type": "posts",
"attributes": {
"content": "xiexie"
},
"relationships": {
"discussion": {
"data": {
"type": "discussions",
"id": "99"
}
}
}
},
{
"type": "posts",
"attributes": {
"content": "xiexie"
},
"relationships": {
"discussion": {
"data": {
"type": "discussions",
"id": "99"
}
}
}
}
]
uj5u.com熱心網友回復:
你New的是一個<String,String>型別的map,你往里面放一個Map那肯定是不行的啊。uj5u.com熱心網友回復:
大佬指點下唄,那要怎么整呢
uj5u.com熱心網友回復:
不寫泛型 或者 直接 把泛型寫成mapuj5u.com熱心網友回復:
<String,Object>就好了uj5u.com熱心網友回復:
好好好!好好好!好好好!uj5u.com熱心網友回復:
懂了,感謝。但即使是這樣,起碼也要套2層吧
uj5u.com熱心網友回復:
你New的是一個<String,String>型別的map,你往里面放一個Map那肯定是不行的啊。uj5u.com熱心網友回復:
思想是對的,實作應該是有些問題. 你最后的結果,可能會出現轉移符" \" ";
修改下,按著其他人說的把map的型別定義成 Map<String,Object> 形式,到最后再統一用json轉成字串即可.
參考如下:
public static void main(String[] args) {
Map<String,Object> data = new HashMap<>();
data.put("type","posts");
Map<String,Object> attributes = new HashMap<>();
attributes.put("content","xiexie");
data.put("attributes",attributes);
data.put("attributes2",net.sf.json.JSONObject.fromObject(attributes).toString()); // 這種情況在最后轉換的時候,會出現雙引號的轉義
Map<String,Object> discussionData = new HashMap<>();
discussionData.put("type","discussions");
discussionData.put("id","99");
Map<String,Object> discussion = new HashMap<>();
discussion.put("data",discussionData);
Map<String,Object> relationships = new HashMap<>();
relationships.put("discussion",discussion);
data.put("relationships",relationships);
Map<String,Object> rootMap = new HashMap<>();
rootMap.put("data",data);
System.out.println(net.sf.json.JSONObject.fromObject(rootMap).toString());
// print : {"data":{"relationships":{"discussion":{"data":{"id":"99","type":"discussions"}}},"attributes":{"content":"xiexie"},"type":"posts","attributes2":"{\"content\":\"xiexie\"}"}}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/15975.html
標籤:Web 開發
上一篇:帶你輕松搞定java后端開發
下一篇:求助帖:請求Maven倉庫下載依賴包時PKIX path building failed: sun.security.provider.certpath.Sun
