我一直对何时使用这两种解析方法感到困惑。

在我回显json_encoded数据并通过ajax检索它之后,我经常对何时应该使用JSON感到困惑。stringify和JSON.parse。

我得到[对象,对象]在我的控制台.log解析和JavaScript对象时stringized。

$.ajax({
url: "demo_test.txt",
success: function(data) {
         console.log(JSON.stringify(data))
                     /* OR */
         console.log(JSON.parse(data))
        //this is what I am unsure about?
    }
});

当前回答

JSON:主要用于与服务器交换数据。在发送之前 JSON对象给服务器,它必须是一个字符串。

JSON.stringify() //Converts the JSON object into the string representation.
var jsonData={"Name":"ABC","Dept":"Software"};// It is a JSON object
var jsonString=JSON.stringify(jsonData);// It is a string representation of the object
// jsonString === '{"Name":"ABC","Dept":"Software"}'; is true

它还将Javascript数组转换为字符串

var arrayObject=["ABC","Software"];// It is array object
var arrString=JSON.stringify(array);// It is string representation of the array (object)
// arrString === '["ABC","Software"]'; is true 

当我们从服务器接收到JSON数据时,数据将是字符串格式。因此,我们将字符串转换为JSON对象。

JSON.parse() //To convert the string into JSON object.
var data='{ "name":"ABC", "Dept":"Software"}'// it is a string (even though it looks like an object)
var JsonData= JSON.parse(data);// It is a JSON Object representation of the string.
// JsonData === { "name":"ABC", "Dept":"Software"}; is true

其他回答

它们是彼此的倒数。JSON.stringify()将JS对象序列化为JSON字符串,而JSON.parse()将把JSON字符串反序列化为JS对象。

JSON。stringify将JavaScript对象转换为JSON文本,并将该JSON文本存储在字符串中,例如:

var my_object = { key_1: "some text", key_2: true, key_3: 5 };

var object_as_string = JSON.stringify(my_object);  
// "{"key_1":"some text","key_2":true,"key_3":5}"  

typeof(object_as_string);  
// "string"  

JSON。parse将JSON文本字符串转换为JavaScript对象,例如:

var object_as_string_as_object = JSON.parse(object_as_string);  
// {key_1: "some text", key_2: true, key_3: 5} 

typeof(object_as_string_as_object);  
// "object" 

JavaScript对象<-> JSON字符串


JSON.stringify() <-> JSON.parse()

JSON.stringify(obj) -接受任何可序列化的对象,并将JSON表示形式作为字符串返回。

JSON.stringify() -> Object To String.

JSON.parse(string) -接受格式良好的JSON字符串并返回相应的JavaScript对象。

JSON.parse() -> String To Object.

解释: JSON。stringify(obj[,转换器[,空间]]);

Replacer/Space -可选或接受整数值,也可以调用整型返回函数。

function replacer(key, value) {
    if (typeof value === 'number' && !isFinite(value)) {
        return String(value);
    }
    return value;
}

用于将非有限的no替换为null。 使用空格缩进Json字符串

JSON。stringify(obj [, replacer [, space]]) -接受任何可序列化对象并以字符串形式返回JSON表示。

JSON.parse(string) -接受格式良好的JSON字符串并返回相应的JavaScript对象。

JSON.stringify()将对象转换为字符串。

JSON.parse()将JSON字符串转换为对象。