JSON String inside a JSON

2019-02-09 07:44发布

I want to create a JSON string inside a JSON request. Here is my code,

Fiddle

JS

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

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

console.log(request);

Can someone help me how to escape the double quotes?

Console

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

Thanks in advance.

2条回答
We Are One
2楼-- · 2019-02-09 08:07

That's just the way the browser console shows you the value of a string, by wrapping in double quotes for the output. This is perfectly normal and nothing is broken.

You can test it by transforming your JSON string back to an object and using a property.

console.log( JSON.parse(request.t).b ); // a sample text
查看更多
够拽才男人
3楼-- · 2019-02-09 08:30

There is no problem. It's just your console.log that shows all strings by simply delimiting with ".

As you say this request object is used in a JSON request, where it will be JSON.stringifyed another time, with the valid result

{"t":"{\"a\":1,\"b\":\"a sample text\"}","c":2,"r":"some text"}
查看更多
登录 后发表回答