JSON.stringify和JSON.parse之间的区别

JavaScript

伽罗Tony

2020-03-14

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

在回显我的json_encoded数据并通过ajax将其检索回去之后,我常常会困惑何时应该使用JSON.stringifyJSON.parse

我得到[object,object]的console.log字符串化时解析和JavaScript对象时。

$.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?
    }
});

第1584篇《JSON.stringify和JSON.parse之间的区别》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

8个回答
梅古一小卤蛋 2020.03.14

JSON.parse()用于将String转换为Object。
JSON.stringify()用于将对象转换为字符串。

你也可以参考这个...

<script type="text/javascript">

function ajax_get_json(){

    var hr = new XMLHttpRequest();
    hr.open("GET", "JSON/mylist.json", true);
    hr.setRequestHeader("Content-type", "application/json",true);
    hr.onreadystatechange = function() {
        if(hr.readyState == 4 && hr.status == 200) {
           /*  var return_data = hr.responseText; */

           var data=JSON.parse(hr.responseText);
           var status=document.getElementById("status");
           status.innerHTML = "";
           /* status.innerHTML=data.u1.country;  */
           for(var obj in data)
               {
               status.innerHTML+=data[obj].uname+" is in "+data[obj].country+"<br/>";
               }

        }
    }
    hr.send(null);
    status.innerHTML = "requesting...";
}
</script>
SamStafan 2020.03.14

他们彼此对立。 JSON.Stringify()将JSON转换为字符串,然后JSON.Parse()将字符串解析为JSON。

Pro番长 2020.03.14

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

JSON.parse(string) -采取格式正确的JSON字符串并返回相应的JavaScript对象。

逆天十三蛋蛋 2020.03.14

我不知道是否有人提到它,但是JSON.parse(JSON.stringify(myObject))的用途之一是创建原始对象的克隆。

当您想要在不影响原始对象的情况下处理一些数据时,这非常方便。对于不是很复杂的对象,可能不是最干净/最快的方法,但肯定是最简单的方法。

卡卡西Tom 2020.03.14

它们是彼此完全相反的。

JSON.parse()用于解析JSON形式接收的数据; 反序列化一个JSON字符串变成一个JavaScript对象

JSON.stringify()另一方面用于对象数组中创建JSON字符串 ; 序列化一个JavaScript对象JSON字符串

前端Pro 2020.03.14

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

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

飞云Tom小宇宙 2020.03.14

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

逆天西里 2020.03.14

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 Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android