我想使用Jackson API(JsonFactory,JsonGenerator)在以下結構中生成JSON字符串。我該怎麼做 ?如何通過Jackson的JsonGenerator編寫原始JSON?
預計:
{
"api": {
"Salutaion": "Mr",
"name": "X"
},
"additional": {
"Hello",
"World"
}
}
實際:
{
"api": "{
\"Salutaion\": \"Mr\",
\"name\": \"X\"
}",
"additional": "{
\"Hello\",
\"World\"
}"
}
屬性API &額外的值將提供給我的字符串。我應該使用writeObjectField(如下)?
jGenerator.writeObjectField("api", apiString);
構建jGenerator對象後,我如何得到最終的構建JSON對象的字符串表示?
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
JsonGenerator jGenerator = jfactory.createJsonGenerator(outputStream);
jGenerator.writeStartObject();
jGenerator.writeObjectField("api", apiString);
jGenerator.writeObjectField("additional", additionalString);
jGenerator.writeEndObject();
jGenerator.close();
outputStream.close();
outputStream.toString()
的outputStream.toString()給出一個JSON字符串,但在apiString雙引號(「)以轉義字符越來越前綴\
這是正確的方式?
是的它是正確的,除非它是無效的 – meda
實際上,apiString是一個JSON字符串。我應該使用writeTree()來確保我得到問題中描述的最終字符串? – yathirigan
我不明白。什麼是'apiString'?它是一個包含JSON內容的字符串嗎? –