是否有可能像字符串一样将json包装在json字段中?

Den*_*nis 8 json

我有一个这样的json:

json1:

{  
    "field1": 111111,
    "field2": "someValue"
}
Run Code Online (Sandbox Code Playgroud)

如何将它在"requestBody"字段中包装成json2就像一个字符串?

json2:

{  
    "requestBody": json1  
}
Run Code Online (Sandbox Code Playgroud)

像这样的东西:

{  
    "requestBody": "{"field1": 111111,"field2": "someValue"}"
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*c B 11

JSON编码的东西只是一个字符串.如果你想嵌入json-in-json,那么"内部"json必须编码成json本身.

例如

$inner = {"foo":"bar"}
$outer = {"container":"{\"foo\":\"bar\"}"}
Run Code Online (Sandbox Code Playgroud)

现在内在的json不再是json了.它只是一个碰巧有点/类似于JSON的字符串.


Chr*_*nce 8

它不会很漂亮,但如果您对 JSON 有效负载进行 Base64 编码,则可以确定它不会被意外解析。

如何使用Javascript进行base64编码: http://www.webtoolkit.info/javascript-base64.html

{  
    "requestBody": "eyJmaWVsZDEiOiAxMTExMTEsImZpZWxkMiI6ICJzb21lVmFsdWUifQ=="
}
Run Code Online (Sandbox Code Playgroud)


Sli*_*ete 6

正如 Marc B 所指出的,必须对内部引号进行转义。

{"requestBody":"{\"field1\":111111,\"field2\":\"someValue\"}"}

小提琴:

http://jsfiddle.net/cheoc1zj/