在数据传输过程中,json是以字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键,那json对象和json字符串互转的方法是什么?下面来我们就来给大家讲解一下。
一、JSON对象转化为JSON字符串#
1.使用JSON.stringify()方法进行转换#
该方法不支持较老版本的IE浏览器,比如:ie8(兼容模式)、ie7、ie6。
var jsonStr = JSON.stringify(jsonObj);
alert(jsonStr);
二、JSON字符串转化为JSON对象#
1.使用eval()函数进行转换#
使用 eval() 转换时需要在 json 字符外包裹一对小括号。
ie8(兼容模式)、ie7、ie6 不要使用此方法。
var jsonObj = eval('(' + jsonStr + ')'); alert(jsonObj[0]["key"]);
2.使用JSON.parse()方法进行转换#
ie8(兼容模式)、ie7、ie6 不要使用此方法。
var jsonObj = JSON.parse(jsonStr);
3.使用jQuery进行转换#
如果我们项目中有使用 jQuery,那么直接使用 $.parseJSON() 方法即可,而且可以确保各个浏览器的兼容性。
var jsonObj = $.parseJSON(jsonStr);
Json对象属性如何修改?
直接用js中的数组和对象给json对象赋值即可
option_old['legend']['data']=option_data_selected['legend_data'];
前面是json对象,后面是js数组
//三、將數據給echart // 指定圖表的配置項和資料 var option_old = { tooltip: { trigger: 'axis' , axisPointer: { type: 'cross' , crossStyle: { color: '#999' } } } , toolbox: { x: 'center' , y: 'top' , feature: { dataView: { show: true , readOnly: false } , magicType: { show: true , type: ['line', 'bar'] } , restore: { show: true } , saveAsImage: { show: true } } } , legend: { y: 'bottom' , data: ['第一組', '第二組', '第三組', '第四組'] } , xAxis: [ { type: 'category' , data: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] , axisPointer: { type: 'shadow' } } ] , yAxis: [ { type: 'value' , name: '高度 (mm)' , min: 0 , max: 250 , interval: 50 , axisLabel: { formatter: '{value}' } } ] , series: [ { name: '第一組' , type: 'line' , data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3] }, { name: '第二組' , type: 'line' , data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3] }, { name: '第三組' , type: 'line' , data: [2.6, 5.9, 9.0, 26.4, 28.7, 72.7, 185.6, 182.2, 48.7, 18.8, 6.0, 2.3] } ] }; option_old = fry_analyze_record_echart_editData(option_old, option_data_selected); //console.log(option_old); //console.log(option_old['legend']['data']); //四、對echar進行動態刷新 var ar_table_id_echart = 'my_bar_table_' + ar_table_id; var myChart = echarts.init(document.getElementById(ar_table_id_echart)); myChart.clear(); //清空画布 myChart.hideLoading(); //加载动画效果 myChart.setOption(option_old); //设置配置项和数据 //動態修改echart的數據 function fry_analyze_record_echart_editData(option_old, option_data_selected) { //賦值操作 if (option_data_selected) { option_old['legend']['data'] = option_data_selected['legend_data']; //option_old['xAxis'][0]['data']=option_data_selected['xAxis_data']; option_old.xAxis[0]['data'] = option_data_selected['xAxis_data']; option_old['yAxis'][0]['name'] = option_data_selected['yAxis_data']['name']; option_old['yAxis'][0]['max'] = option_data_selected['yAxis_data']['max']; option_old['yAxis'][0]['min'] = option_data_selected['yAxis_data']['min']; option_old['yAxis'][0]['interval'] = option_data_selected['yAxis_data']['interval']; //series var new_series = new Array(); for (var x1 in option_data_selected['series_data']) { var new_series_per_obj = new Object(); new_series_per_obj.name = x1; new_series_per_obj.type = 'line'; new_series_per_obj.data = option_data_selected['series_data'][x1]; new_series.push(new_series_per_obj); } option_old['series'] = new_series; } else { option_old['series'] = null; } return option_old; }
其实要想更改属性,直接用js中的数组和对象给json对象赋值就可以了,最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。
推荐阅读: