Javascript 使用正则表达式将Json拆分为键和数据
我将使用正则表达式将下面的JSON对象拆分为其各自的键和值,并将这些值包装在HTMLP标记中Javascript 使用正则表达式将Json拆分为键和数据,javascript,regex,match,Javascript,Regex,Match,我将使用正则表达式将下面的JSON对象拆分为其各自的键和值,并将这些值包装在HTMLP标记中 { "completeOrder": [ { "optionDescription": "Choose your size?", "optionTotal": 3, "dataMax": 0, "name": [ "wheat", " dough", " ric
{
"completeOrder": [
{
"optionDescription": "Choose your size?",
"optionTotal": 3,
"dataMax": 0,
"name": [
"wheat",
" dough",
" rice"
],
"price": [
"34",
"23",
"45"
],
"require": false,
"dataSingleproduct": false,
"innerOptions": [],
"extraOptions": [
...
]
}
]
}
我希望返回的字符串如下所示:
{
completeOrder: [{
optionDescription:
<p>Choose your size</p>
optionTotal:
<p>3</p>
dataMax:
<p>0</p>
name: [
<p>Wheat</p>
...
]
...
]
}
{
完整顺序:[{
选项说明:
选择你的尺码
optionTotal:
三,
dataMax:
0
姓名:[
小麦
...
]
...
]
}
这个JSON对象保存在一个文件中,通过node.js的“fs.read”特性接收。
我在str变量中接收对象,目前这是我目前拥有的代码,它使我接近我想要的,但它缺少我需要的形式
let val= str.split(/[\r\n|\r|\n|{|}|:|,|\[|\]]/gi);
for (let i = 0; i < val.length; i++) {
// if(sentences[i] !== ""){
console.log(val[i])
// }
}
let val=str.split(/[\r\n |\r |\n{|}}:|,| \[| \]/gi);
for(设i=0;i
我的代码去掉了字符(“{”、“[”、“]”、“}”、“:”),但我不知道它们去掉了什么。
如果有任何帮助,我们将不胜感激。您可以递归地迭代JSON对象,只要在值周围放置一个段落标记(如果是文本)
功能f(obj)
{
用于(让我输入obj)
{
if(对象类型[i]=“对象”)
{
f(obj[i]);
}
其他的
{
obj[i]=''+obj[i]+'';
}
}
}
my_json={
“完成订单”:[
{
“选项说明”:“选择您的尺码?”,
“optionTotal”:3,
“dataMax”:0,
“姓名”:[
“小麦”,
“面团”,
“大米”
],
“价格”:[
"34",
"23",
"45"
],
“要求”:错误,
“dataSingleproduct”:false,
“内部选项”:[],
“额外选择”:[
]
}
]
}
f(my_json);
console.log(JSON.stringify(my_JSON).replace(/\,/g,“\n”);
降级,为什么?仍然没有答案嗯。好吧,我想这里的人们已经厌倦了人们试图滥用Rexep。不管怎样,为什么不使用任意数量的JSON解析器(可能在这一点上内置)然后进入一个真实的数据结构,然后处理它?哈哈,这很有趣,从来没有想过会有对REGEX的滥用,所以请详细说明“json解析器(此时可能内置)是什么意思,然后进入一个真实的数据结构,然后处理它?”,这本书对我来说还是相当新鲜的。非常感谢,我做了我想做的,我完全忽略了使用javascript来做这件事的可能性。我相信,现在花了我一个多小时,剩下的就很简单了。我怎么把标签包在键周围,可能还有大括号和方括号,好吗?这有点复杂。但是t如果您只想在一个格式非常好的HTML输出中打印json对象,只需使用document.body.innerHTML=''+json.stringify(json_obj,null,2)+'';
无需添加任何标记add all。谢谢,我最终用replace做了一些复杂的更改,感谢您的回答,它工作得非常好。