이 글에서는 주로 js의 json 객체와 문자열에 대한 이해와 상호 변환 연산의 구현 방법을 소개합니다. json 객체와 문자열의 기능과 상호 변환 연산의 구현 기법을 예제 형식으로 분석합니다. 참조할 수 있어야 합니다. 모든 사람을 도울 수 있기를 바랍니다.
<script> var str="{'strv':["+ "{'a':'a11'},"+ " {'a':'b222'}"+ " ]}"; //如果放在一行更清楚:var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}"; var str2=eval('('+str+')'); // alert(str2.strv[1].a); var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]}; //如果放在一行更清楚:var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]}; // alert(jsonob.jsonv[1].j); /* var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}"; var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]}; 这样我们可以看出json对象和字符串是不一样的! 字符串就是字符串,json对象是一个对象。 虽然其内容都是我们看到的json格式,但是两者是有区别的。 我们想取出其中某个属性的值,其实是对json对象操作的(你能取出对象的属性值,但不能取出字符串的属性值,字符串没属性。)。 所以如果你拿到的是对象,那你就直接可以取值了, 例如jsonob.jsonv[1].j。 如果你拿到的是字符串,那你必须先转化成对象才可以取值, 字符串转对象有几种方法,js本身自带的是var str2=eval('('+str+')'); 这里的str2就是对象了。如果你引入了json.js文件,还可以使用其中的 方法,这些都已经封装好了。 总结:json只是一种格式。符合这种格式的可以是json对象,也可以是字符串。 要取属性值只能从对象里取。所以需要两者的转化。 js自带的转化方法: 字符串转成json对象: var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}";//字符串 var jsonObject=eval('('+str+')');//json对象 json对象转成字符串: js本身没有这样的方法,你需要自己写这样的方法,才能转化。 从上可知,js本身只可以将字符串转成json对象, 但不可以将json对象转成字符串。其实我们可以用 json.js里的方法,而且更简单。这时你要引入json.js文件。 json.js里的方法: 字符串转成json对象: var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}";//字符串 转成json对象方法1: var myJSONObject1=str.parseJSON(); 转成json对象方法2: var myJSONObject2=JSON.parse(str); json对象转成字符串: var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]};//json对象 转成字符串方法1:var mystr1=jsonob.toJSONString(); 转成字符串方法2: var mystr2=JSON.stringify(jsonob); */ </script>
실험을 통해 json이 실제로 형식이고 js 자체가 이 형식을 지원한다는 것을 이해해야 합니다.
그래서 json.js를 도입하지 않고도 json 개체를 사용할 수 있습니다. 일반적으로 json.js를 소개하는 이유는 편의를 위해 json 객체와 문자열 변환 방법을 캡슐화하기 때문입니다(물론 다른 방법도 있습니다).
이 예를 통해 우리는 json 객체와 문자열의 차이점을 더 잘 이해할 수 있습니다.
관련 권장사항:
일반적인 js 배열 연산에 대한 자세한 설명 및 배열과 문자열 간의 상호 변환 예
위 내용은 json 객체와 js의 문자열 간 변환 작업의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!