首頁 >web前端 >js教程 >js中json物件和字串相互轉換操作實例

js中json物件和字串相互轉換操作實例

小云云
小云云原創
2018-02-03 13:27:281628瀏覽

本文主要和大家介紹js中json物件和字串的理解及相互轉化操作實現方法,結合實例形式分析了json物件與字串的功能以及相互轉換操作實現技巧,需要的朋友可以參考下,希望能幫助大家。


<script>
 var str="{&#39;strv&#39;:["+
       "{&#39;a&#39;:&#39;a11&#39;},"+
       " {&#39;a&#39;:&#39;b222&#39;}"+
     " ]}";
 //如果放在一行更清楚:var str="{&#39;strv&#39;:[{&#39;a&#39;:&#39;a11&#39;}, {&#39;a&#39;:&#39;b222&#39;} ]}";
 var str2=eval(&#39;(&#39;+str+&#39;)&#39;);
// alert(str2.strv[1].a);
 var jsonob={&#39;jsonv&#39;:[
         {&#39;j&#39;:&#39;j111&#39;},
         {&#39;j&#39;:&#39;j222&#39;}
       ]};
//如果放在一行更清楚:var jsonob={&#39;jsonv&#39;:[ {&#39;j&#39;:&#39;j111&#39;}, {&#39;j&#39;:&#39;j222&#39;} ]};
// alert(jsonob.jsonv[1].j);
 /*
var  str="{&#39;strv&#39;:[{&#39;a&#39;:&#39;a11&#39;}, {&#39;a&#39;:&#39;b222&#39;} ]}";
var jsonob={&#39;jsonv&#39;:[ {&#39;j&#39;:&#39;j111&#39;}, {&#39;j&#39;:&#39;j222&#39;} ]};
这样我们可以看出json对象和字符串是不一样的!
字符串就是字符串,json对象是一个对象。
虽然其内容都是我们看到的json格式,但是两者是有区别的。
我们想取出其中某个属性的值,其实是对json对象操作的(你能取出对象的属性值,但不能取出字符串的属性值,字符串没属性。)。
所以如果你拿到的是对象,那你就直接可以取值了,
例如jsonob.jsonv[1].j。
如果你拿到的是字符串,那你必须先转化成对象才可以取值,
字符串转对象有几种方法,js本身自带的是var str2=eval(&#39;(&#39;+str+&#39;)&#39;);
这里的str2就是对象了。如果你引入了json.js文件,还可以使用其中的
方法,这些都已经封装好了。
总结:json只是一种格式。符合这种格式的可以是json对象,也可以是字符串。
要取属性值只能从对象里取。所以需要两者的转化。
js自带的转化方法:
 字符串转成json对象:
   var str="{&#39;strv&#39;:[{&#39;a&#39;:&#39;a11&#39;}, {&#39;a&#39;:&#39;b222&#39;} ]}";//字符串
   var jsonObject=eval(&#39;(&#39;+str+&#39;)&#39;);//json对象
 json对象转成字符串:
   js本身没有这样的方法,你需要自己写这样的方法,才能转化。
从上可知,js本身只可以将字符串转成json对象,
但不可以将json对象转成字符串。其实我们可以用
json.js里的方法,而且更简单。这时你要引入json.js文件。
json.js里的方法:
 字符串转成json对象:
     var str="{&#39;strv&#39;:[{&#39;a&#39;:&#39;a11&#39;}, {&#39;a&#39;:&#39;b222&#39;} ]}";//字符串
  转成json对象方法1: var myJSONObject1=str.parseJSON();
  转成json对象方法2: var myJSONObject2=JSON.parse(str);
 json对象转成字符串:
     var jsonob={&#39;jsonv&#39;:[ {&#39;j&#39;:&#39;j111&#39;}, {&#39;j&#39;:&#39;j222&#39;} ]};//json对象
  转成字符串方法1:var mystr1=jsonob.toJSONString();
  转成字符串方法2: var mystr2=JSON.stringify(jsonob);
 */
</script>

透過實驗,我們應該明白,json其實是一種格式,js本身支援這種格式,

所以你不需要引入json. js就可以使用json物件。我們一般會引入json.js因為這裡面封裝了json物件和字串轉換的方法,方便我們使用(當然還有其他方法)。

透過本例我們更能理解json物件和字串之間的差異。

相關推薦:

js陣列常見運算與陣列與字串相互轉換實例詳解

#

以上是js中json物件和字串相互轉換操作實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn