Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON中的JSON字符串_Javascript_Json_Escaping_Stringify - Fatal编程技术网

Javascript JSON中的JSON字符串

Javascript JSON中的JSON字符串,javascript,json,escaping,stringify,Javascript,Json,Escaping,Stringify,我想在JSON请求中创建一个JSON字符串。这是我的密码 JS var x = { a: 1, b: 'a sample text', }; var request = { t: JSON.stringify(x), c: 2, r: 'some text' }; console.log(request); 有人能帮我摆脱双引号吗 控制台 Object { t: "{"a":1,"b":"a sample text"}", //This cre

我想在JSON请求中创建一个JSON字符串。这是我的密码

JS

var x = {
    a: 1,
    b: 'a sample text',
};

var request = {
    t: JSON.stringify(x),
    c: 2,
    r: 'some text'
};

console.log(request);
有人能帮我摆脱双引号吗

控制台

Object {
  t: "{"a":1,"b":"a sample text"}", //This creates a problem, double quotes inside double quotes.
  c: 2, 
  r: "some text"
}

提前谢谢。

没问题。它只是您的
控制台.log
,只需使用
分隔即可显示所有字符串

正如您所说,这个
request
对象在JSON请求中使用,它将在另一次
JSON.stringify
ed中使用有效的结果

{"t":"{\"a\":1,\"b\":\"a sample text\"}","c":2,"r":"some text"}

这正是浏览器控制台显示字符串值的方式,在输出中用双引号括起来。这是完全正常的,没有任何东西会被破坏

您可以通过将JSON字符串转换回对象并使用属性来测试它

console.log( JSON.parse(request.t).b ); // a sample text

这可能没有什么帮助。但是,我遇到了一个问题,JSON中的JSON字符串没有属性。我能够通过以下操作解析JSON字符串:

//Return from remote php request {'{"firsttest": 0, ""scndTest": 1"}'};
// How to access 
let data = Object.Keys(jsonWJsonString)[0];
let justJSONValue = JSON.parse(data);

这是因为没有可引用的对象属性,因此可以使用索引值;这为我们提供了JSONString。希望这对任何人都有帮助。干杯

您没有问题。如果您有问题,请
JSON.stringify(请求)
您将获得一个完全有效的JSON对象。然后您可以对其进行
JSON.parse
并确认您返回的对象与原始对象相同。这个问题似乎与主题无关,因为这里实际上没有问题。正确转义引号只是使用字符串文字时的问题。您必须转义引号,以便解析器知道字符串值的结束位置。但是,您是通过编程方式生成字符串的,此时不再涉及解析器。我的错。如果您在另一个JSON中构建JSON,那么询问某人是一个愚蠢的问题。console.log(JSON.parse(request.t));应该足够了。