js字符串和对象转换

1.js字符串 转换成 js对象

        形如:字符串  var    str    = ‘{a : "A",b:"B",c:"C",d :100}’,可以通过函数eval("("+str+")")正常转换为js对象;
        必须是如上格式,如果某个属性的值是字符串(数字不用)但是没有被括号引起来,那么用eval函数转换的时候会报错;

2.js字符串和json对象之间的转换

       形如 :字符串 var json_str = '{"a":"A","b":"B","c":"C"}',可以通过JSON.parse(json_str);转换成json对象;
      必须是如上格式,属性和值都必须用引号引用起来;
  
       另外还可以通过json_str.parseJSON();来转换为json对象;

3.字符串的替换

    str.replace(/../,newStr); 红色部分是一个正则表达式,可以全部替换;如果填写一个字符串,那么只会替换第一处。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 JavaScript 中,可以使用以下方法进行字符串和文本的转换: 1. 将字符串转换为文本:使用 `JSON.stringify()` 方法一个 JavaScript 对象转换JSON 格式的字符串。例如: ``` const obj = { name: "Alice", age: 23 }; const text = JSON.stringify(obj); console.log(text); // 输出结果为:{"name":"Alice","age":23} ``` 2. 将文本转换字符串:使用 `JSON.parse()` 方法一个 JSON 格式的字符串转换为 JavaScript 对象。例如: ``` const text = '{"name":"Alice","age":23}'; const obj = JSON.parse(text); console.log(obj); // 输出结果为:{ name: "Alice", age: 23 } ``` 注意,使用 `JSON.stringify()` 方法转换对象时,对象中的函数和原型链上的属性都会被忽略掉。如果需要将对象中的函数和原型链上的属性也转换字符串,可以使用第三方库如 `Lodash` 的 `_.cloneDeepWith()` 方法。 例如,可以使用以下代码将一个对象及其原型链上的属性都转换字符串: ``` const _ = require('lodash'); class Person { constructor(name, age) { this.name = name; this.age = age; } sayHello() { console.log(`Hello, my name is ${this.name} and my age is ${this.age}.`); } } const alice = new Person("Alice", 23); const obj = _.cloneDeepWith(alice, (value) => { if (typeof value === 'function') { return value.toString(); } }); const text = JSON.stringify(obj); console.log(text); // 输出结果为:{"name":"Alice","age":23,"__proto__":{"constructor":"function Person(name, age) {\n this.name = name;\n this.age = age;\n}\n\nPerson.prototype.sayHello = function () {\n console.log(`Hello, my name is ${this.name} and my age is ${this.age}.`);\n}"}} ``` 其中,`_.cloneDeepWith()` 方法接收两个参数,第一个参数是需要进行深度克隆的对象,第二个参数是一个回调函数,在回调函数中可以自定义克隆的行为。在上面的例子中,回调函数判断如果当前是函数,则将函数转换字符串返回。这样就可以将对象及其原型链上的属性都转换字符串了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值