3 回答

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
問(wèn)題是由以下原因引起的:
tjsonObject.addProperty("channels", gson.toJson(channelsList));
它所做的是轉(zhuǎn)換channelsList為包含 JSON 列表表示的字符串,然后將該屬性設(shè)置為該字符串。由于字符串包含 JSON 元字符,當(dāng)字符串被序列化時(shí)它們必須被轉(zhuǎn)義......第二次。
我認(rèn)為你需要這樣做:
tjsonObject.add("channels", gson.toJsonTree(channelsList));
那應(yīng)該產(chǎn)生這個(gè):
{
"tags": {
"channels":
[{"type":"channel","id":"channel","name":"Channel","parent":"SXM"}],
"shows":
[{"type":"shows","id":"shows","name":"Shows","parent":"SXM"},
{"type":"shows","id":"howard","name":"Howard Stern","parent":"shows"}
....
這與您的問(wèn)題要求的略有不同,但它的優(yōu)點(diǎn)是語(yǔ)法有效 JSON!

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
String mainJsonStr = mainjsonObject.toString();
mainJsonStr = mainJsonStr.replace("\\\\", ""); //replace the \
System.out.println(mainJsonStr);
添加回答
舉報(bào)