将正常字符串转换为JavaScript中的对象?



我得到这个字符串作为输入

"countries" : "[[england, australia], [UAE, China], [UAE]]"

我想,我需要把这个字符串转换成

{"countries": [["england", "australia"], ["UAE", "China"], ["UAE"]]}
然后我可以将转换为Object在js中使用json.parse()方法

我试了各种方法,但似乎都不起作用。

我试着

  1. JSON.stringify
  2. JSON.parse
  3. eval

我在Java中做过这个,但是在Javascript中不能这样做。我是js的新手,在java中我可以很容易地做这个JSONObject。

任何帮助将不胜感激,谢谢!!

这需要多个步骤:

将输入用花括号括起来,并执行JSON.parse:

const input = ""countries" : "[[england, australia], [UAE, China], [UAE]]""
const result = JSON.parse("{" + input + "}")

给你一个像这样的对象:

{
"countries": "[[england, australia], [UAE, China], [UAE]]"
}

然后将内部字符串用双引号括起来并再次解析:

const inner = result.countries
result.countries = JSON.parse(inner.replaceAll(/([a-zA-Z]+)/g, '"$1"'))

得到result:

{
"countries": [
[
"england",
"australia"
],
[
"UAE",
"China"
],
[
"UAE"
]
]
}

最新更新