1、javascript中将字符串转换成json对象,需要用到jquery.js
<script type="text/javascript" src="jquery-1.8.1.js"></script>
<script>
var jsonStr1="{\"code\":\"001\",\"name\":\"hello1\"}";
var jsonStr2="[{\"code\":\"002\",\"name\":\"hello2\"}]";
var jsonStr3="[{\"code\":\"003\",\"name\":\"hello3\"},{\"code\":\"004\",\"name\":\"hello4\"}]";
//第一种写法,从jQuery 3.0开始,不推荐使用$.parseJSON。 要解析JSON字符串,请改用原生的 JSON.parse 方法。
var jsonObj1=$.parseJSON(jsonStr1);
var jsonObj2=$.parseJSON(jsonStr2);
var jsonObj3=$.parseJSON(jsonStr3);
//第二种写法
//var jsonObj1=JSON.parse(jsonStr1);
//var jsonObj2=JSON.parse(jsonStr2);
//var jsonObj3=JSON.parse(jsonStr3);
//第三种写法
//var jsonObj1=eval('(' + jsonStr1 + ')');
//var jsonObj2=eval('(' + jsonStr2 + ')');
//var jsonObj3=eval('(' + jsonStr3 + ')');
alert(jsonObj1.name);
alert(jsonObj2[0].name);
alert(jsonObj3[1].name);
</script>
传入格式有误的 JSON 字符串可能导致抛出异常。例如,下面这些无效的 JSON 字符串:
{test: 1} (test 没有使用双引号包裹).
{'test': 1} ('test' 用了单引号而不是双引号包裹).
"{test: 1}" (test 没有使用双引号包裹).
"{'test': 1}" ('test' 用了单引号而不是双引号包裹).
"'test'" ('test' 用单引号代替双引号).
".1" (number 必须以数字开头; "0.1" 将是有效的).
"undefined" (undefined 不能表示一个 JSON 字符串; 然而null,可以).
"NaN" (NaN 不能表示一个 JSON 字符串; 用Infinity直接表示无限也是不允许的).
2、json对象转换成字符串
<script>
var obj=new Object();
obj.code="001";
obj.name="hello1";
var str=JSON.stringify(obj);
alert(str);
</script>
3、获取json对象条目数量,正常情况下可以使用obj.length来获取数量,如果想获取对象元素数量,可以使用下面方法
<script>
function getJsonObjLength(jsonObj) {
var Length = 0;
for (var item in jsonObj) {
Length++;
}
return Length;
}
</script>
4、循环操作json
<script>
var myObj = { "code":"001", "name":"hello1" };
//使用 for-in 来循环对象的属性
for (x in myObj) {
alert(x);
}
//在 for-in 循环对象的属性时,使用中括号([])来访问属性的值
for (x in myObj) {
alert(myObj[x]);
}
</script>
5、删除JSON对象的属性
<script>
var myObj, i, x = "";
myObj = {
"name":"hello1",
"alexa":10000,
"sites": {
"site1":"123",
"site2":"456",
"site3":"789"
}
}
//使用 delete 关键字来删除 JSON 对象的属性
delete myObj.sites.site1;
//使用中括号([])来删除 JSON 对象的属性:
delete myObj.sites["site2"];
for (i in myObj.sites) {
x += myObj.sites[i] + "#";
}
alert(x);
</script>
6、数组转JSON字符串
<script>
var jsonArr=new Array();
for(var i=0;i<5;i++){
var obj=new Object();
obj.title="title"+i;
obj.value=i;
jsonArr.push(obj);
}
var str=JSON.stringify(jsonArr);
alert(str);
</script>