Javascript 从包含JSON对象的字符串解析JSON
我有一根像Javascript 从包含JSON对象的字符串解析JSON,javascript,json,Javascript,Json,我有一根像 "Something has happened {\"prop1\":{\"name\":\"foo\"}}" 我想解析出JSON,以便格式化字符串。例如: Something has happened { "prop1":{ "name":"foo" } } 在JavaScript中,实现这一点的好方法是什么 字符串中可能有多个对象,而且该对象可能不为人所知,因为它可能包含许多嵌套对象或数组。提前感谢。我们可以假设“{”和“}”表示json的开始和结束
"Something has happened {\"prop1\":{\"name\":\"foo\"}}"
我想解析出JSON,以便格式化字符串。例如:
Something has happened
{
"prop1":{
"name":"foo"
}
}
在JavaScript中,实现这一点的好方法是什么
字符串中可能有多个对象,而且该对象可能不为人所知,因为它可能包含许多嵌套对象或数组。提前感谢。我们可以假设“{”和“}”表示json的开始和结束吗。如果是这样,你可以得到一个子串;请参阅下面的代码。你可以用正则表达式做同样的事情
var str = "Something has happened {\"prop1\":{\"name\":\"foo\"}}"
var start = str.indexOf("{");
var end = str.lastIndexOf("}");
var json = str.substr(start, end);
最小值就是打印字符串
那好吧。一个非常简单、未经优化、不一定健壮的漂亮打印功能可能如下所示:
函数BasicPropertyPrintStr{
var输出=;
风险等级=0;
var缩进=“”;
var-inQuotes=false;
对于变量i=0;iconsole.logbasicPrettyPrintinput;欺骗我想解析出JSON,以便格式化字符串。这到底是什么意思?我不确定我是否理解这个问题。字符串文字“发生了什么”{\prop1\:{\name\:\foo\}产生的结果正好是您想要的字符序列?这样我就可以格式化字符串-您只是想以所示格式漂亮地打印整个字符串,还是需要专门提取JSON的位?您是否会假设{的任何使用都表示较大字符串中JSON的开始?您提到了嵌套数组,但外部对象是否可以是类似于[1,2,3]的数组?@nnnnnn最小值只是漂亮地打印字符串,但提取Json对象也很好。是的,可能有一个数组作为外部对象。@FelixKling我更新了我的问题,以便更好地表示格式。我需要能够漂亮地打印此对象。字符串不仅包含一个对象,还可以包含一些w不在对象中的单词,加上一个字符串中可以有多个对象,比如从{}到{},如果我可以有多个对象,那么这将像我在上面的回答中从{}到{}一样中断。是的,我考虑过使用这种过程方法,但我想有人可能有一个聪明的解决方案。谢谢