json对象和json字符串互转的方法是什么? Json对象属性如何修改?

在数据传输过程中,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工具网。

推荐阅读:

qt使用的元对象系统中两项关键技术是什么?

java怎么写服务器?java写服务器方法

java中单个字符如何比较大小?java字符串怎么替换?