Js对象(四)对象与字符串相互转换 2021-11-24

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Js对象(四)对象与字符串相互转换 2021-11-24相关的知识,希望对你有一定的参考价值。

参考技术A 在实际开发中我们经常需要将对象转为字符串来传递数据,传递完毕后再以对象的方式显示,所以必须掌握相互转换的方法

一、将对象转为字符串:

 let obj =

        name: "小米10",

        color: '红色',

        size: '1000*200*500',

        price: '2999'

   

    // 1. 获取对象的两种方式:

    // console.log(obj.name);

    // console.log(obj['name']);

    // 2.遍历对象

    // 2.1  for in  遍历对象

    // for(变量  in  对象)

    //

    for (let key in obj) //for in 里面的变量喜欢用key

        console.log(key); // key 变量 输出得到是属性值

        // console.log(obj[k]); //得到里面的属性值

        // console.log(k + '--' + obj[k]);

   

    // 2.2  ES6中新增的获取对象的所有属性方法  

    // Object.keys()  返回对象的所有属性名 是个数组

    console.log(Object.keys(obj)); //['name', 'color', 'size', 'price']

    Object.keys(obj).forEach(key =>

            console.log(key + '--' + obj[key]);

        )

        // Object.values返回对象的所有属性值 是个数组

    console.log(Object.values(obj));

    console.log('*'.repeat(30));

    // 3.两种方法转换为字符串

    //方法一

    let arr1 = [] //先声明空数组,再将空数组转换为字符串

    for (let key in obj)

        arr1.push(key + '=' + obj[key]) // 声明空数组接收对象转换后的数组

   

    console.log(arr1.join('&')); //也可以声明一个字符串去接

    // 方法二

    // 先找到数组里面所有的属性名,然后用map修改属性

    let str2 = Object.keys(obj).map(key => [key, obj[key]].join('=')).join('&')

    console.log(str2);

二、将字符串转为对象

 let str = 'name=刘德华&age=18&sex=男';

        let obj = ;

        // split将字符串按照指定字符转为数组,forEach再遍历数组

        str.split('&').forEach(r =>

            let arr = r.split('='); //然后再用split按等号将数组拼成新数组

            obj[arr[0]] = arr[1]; //再给对象赋值 arr[0]是属性。arr[1]是值

        );

        console.log(obj);

微信小程序json对象与json字符串相互转换

本文整理微信小程序中json对象与json字符串相互转换的实现。

微信小程序中的一些语法和普通js实现上有一些区别,所以有的函数不能直接使用。

1、json对象=>json字符串

// 定义一个json对象
var obj_json = {
    "name": "时间",
    "value": "2021-05-19 09:43"
};

// json对象转成json字符串
var str_json = JSON.stringify(obj_json)
console.log(str_json)

// 控制台输出结果:{"name":"时间","value":"2021-05-19 09:43"}

2、json字符串=>json对象

var obj_json2 = JSON.parse(str_json); // str_json接着使用上面的数据,注意这里不能用eval()函数,被小程序禁用了
console.log(obj_json2)

控制台输出结果:

3、相关知识

(1)判断json字符串是否为空:

if (typeof str_json != \'object\' && str_json != "empty") 
{
  //json字符串不为空的处理
}

(2)处理json字符串头部出现的非法字符“\\ufeff”

str_json = str_json.replace(/\\ufeff/g, ""); //重点,如果不处理特殊字符,解析时可能会报错

以上是关于Js对象(四)对象与字符串相互转换 2021-11-24的主要内容,如果未能解决你的问题,请参考以下文章

js中 json对象与json字符串相互转换的几种方式

JSON对象与字符串之间的相互转换

JSON——JavaScript中js对象与JSON格式字符串的相互转换

JSON对象与字符串相互转化ObjectMapper

微信小程序json对象与json字符串相互转换

Js对象与jquery对象相互转换