猿问

在Javascript中将json字符串转换为对象

我在 JS 中有以下 var 形式的文本,这是我从另一个函数中获取的。


    var text = '["{"a1":"zxcv","a2":"pqrs","c2":[1,2,3],"a3":{"aa3":"asdfgh","aa5":null}}","{"a1":"xyz","a2":"mno","c2":[103],"a3":{"aa8":"qwerty"}}"]';

我需要检查 a1、a2、c2 的计数及其值以及 a3 及其值。例如:a1:2、a2:2、c2:4、a3:3 等等(子元素的数量也是如此)


我想得到我的结果的粗略方法是首先删除第一个和最后一个 " 并用 }," 替换 },"{ 这给了我一个 json 对象数组,然后使用 JSON.parse 给了我一个更好的结构转换我可以轻松地遍历它。我找不到任何库或其他解决方案作为替代方案。


 var text = '["{"a1":"zxcv","a2":"pqrs","c2":[1,2,3],"a3":{"aa3":"asdfgh","aa5":null}}","{"a1":"xyz","a2":"mno","c2":[103],"a3":{"aa8":"qwerty"}}"]';


        console.log(text);


        text = text.replace(/\["{/g, "[{"); // remove first double quote

        text = text.replace(/\}"]/g, "}]"); // remove last double quote

        text = text.replace(/\}","{/g, "},{"); // replace middle quotes


        console.log(text);


        var formattedText = JSON.parse(text);


        console.log(formattedText);

我以对象形式获取它后的预期输出,然后我可以遍历对象并使用计数器来维护计数:

a1:2,a2:2,c2:4,a3:3

是否有任何功能(内置或带有库)可以帮助我解决这个问题?


Smart猫小萌
浏览 183回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答