我有一个像这样的json:
json1:
{
"field1": 111111,
"field2": "someValue"
}
如何将其包装在" requestBody"字段变成json2就像一个字符串?
json2:
{
"requestBody": json1
}
这样的事情:
{
"requestBody": "{"field1": 111111,"field2": "someValue"}"
}
答案 0 :(得分:8)
JSON编码的东西只是一个字符串。如果你想嵌入json-in-json,那么" inner" json必须编码成json本身。
e.g。
$inner = {"foo":"bar"}
$outer = {"container":"{\"foo\":\"bar\"}"}
现在内在的json不再是json了。它只是一个碰巧有点/有点像JSON的字符串。
答案 1 :(得分:3)
正如Marc B所说,内部引号必须被转义。
{"requestBody":"{\"field1\":111111,\"field2\":\"someValue\"}"}
小提琴:
答案 2 :(得分:1)
它不会很漂亮,但是如果你对base 64编码JSON有效负载,你可以确定它不会被意外解析。
如何使用Javascript进行base64编码: http://www.webtoolkit.info/javascript-base64.html
{
"requestBody": "eyJmaWVsZDEiOiAxMTExMTEsImZpZWxkMiI6ICJzb21lVmFsdWUifQ=="
}
答案 3 :(得分:0)
类似这样的内容(删除内部JSON周围的引号):
{ "requestBody": {"field1": 111111,"field2": "someValue"} }
答案 4 :(得分:-1)
转义双引号字符串很难看。为什么不在嵌入式JSON中使用单引号字符串?例如:
{
"container":"{'foo':'bar'}"
}