从字符串到Javascript对象

From string to an Object with Javascript

本文关键字:对象 Javascript 字符串      更新时间:2023-09-26

如何将此字符串:"{one=1,two=2}"转换为JavaScript对象?所以我可以访问这些值

我尝试用":"替换"=",但是在访问对象时,我收到一个"未定义"。下面是我的代码:

var numbers = "{one=1,two=2}"; //This is how I receive the string
numbers = numbers.replace(/=/g, ':'); //I use the '/g' to replace all the ocurrencies
document.write(numbers.one); //prints undefined

这是字符串

var str = '{one=1,two=2}';

=字符替换为:,并将其作为有效的JSON对象(需要带双引号的键)

var str_for_json = str.replace(/('w+)=/g, '"$1"=').replace(/=/g, ':');

在正则表达式中,'w意味着[a-zA-Z0-9_]( ) 捕获里面的内容,稍后可用,就像这里的$1

现在将字符串解析为JSON以便像这样使用

var str_json = JSON.parse(str_for_json);

现在享受。干杯! !

document.write(str_json.one); 

最后:

var str = '{one=1,two=2}';
var str_for_json = str.replace(/('w+)=/g, '"$1"=').replace(/=/g, ':');
try {
    var str_json = JSON.parse(str_for_json);   
    document.write(str_json.one);
} catch(e) {
    console.log("Not valid JSON:" + e);
};

不尝试使用regexp来创建JSON,而是直接解析字符串,如

所示
const result = {};
numbers.match(/{(.*?)}/)[1]             // get what's between curlies
  .split(',')                           // split apart key/value pairs
  .map(pair => pair.split('='))         // split pairs into key and value
  .forEach(([key, value]) =>            // for each key and value
    result[key] = value);               // set it in the object

1 -一个有效的JSON是:var numbers = "{'"one'"=1,'"two'"=2}";(你需要'")

2-你需要JSON.parse字符串

var numbers = "{'"one'"=1,'"two'"=2}"; //This is how I receive the string
numbers = numbers.replace(/=/g, ':'); //I use the '/g' to replace all the ocurrencies
numbers=JSON.parse(numbers);
document.write(numbers.one); //prints undefined