Javascript &引用;“解码组件”;JSON列表中的项目
我想解析JSON列表中的所有项目,并使用函数decode删除HTML格式的空格,%20等等 请参阅下面的代码片段 我的目标:Javascript &引用;“解码组件”;JSON列表中的项目,javascript,jquery,json,Javascript,Jquery,Json,我想解析JSON列表中的所有项目,并使用函数decode删除HTML格式的空格,%20等等 请参阅下面的代码片段 我的目标: 我想把安迪·彼得斯改成“安迪·彼得斯” 我不想使用关键字名称将每个项目称为“this.product\u model” $(文档).ready(函数(){ $('.btn')。单击(函数(){ $(光线)。每个(函数(索引){ log(“解码前的项:“+index+”:“+$(this.text()+”:“+this.product_model”); this.in
- 我想把安迪·彼得斯改成“安迪·彼得斯”
- 我不想使用关键字名称将每个项目称为“this.product\u model”
$(文档).ready(函数(){
$('.btn')。单击(函数(){
$(光线)。每个(函数(索引){
log(“解码前的项:“+index+”:“+$(this.text()+”:“+this.product_model”);
this.index=解码字符串(this.item);
log(“解码后的项目:“+index+”:“++$(this.text()+”:“+this.product_model”);
});
});
});
函数解码字符串(a){
如果(a的类型!=“未定义”){
返回组件(a);
}否则{
返回“”;
}
}
变量射线=[{
“产品id”:“1”,
“产品型号”:“Andy%2EPeters”,
}, {
“产品标识”:“2”,
“产品型号”:“Tom%2感谢”,
}, {
“产品id”:“1”,
“产品型号”:“HFJ5G1.5”,
}, ];
//控制台设置
var consoleLine=“”;
控制台={
日志:函数(文本){
$(“#控制台日志”).append($(consoleLine.html(text));
}
};代码>
.console行{
字体系列:控制台;
保证金:2倍;
}
$(文档).ready(函数(){
$('.btn')。单击(函数(){
var data=decodeURIComponent(JSON.stringify(ray).replace(/(%2E)/ig,“%20”);
ray=JSON.parse(数据);
$(光线)。每个(函数(){
console.log(此.product_模型);
})
});
});
变量射线=[{
“产品id”:“1”,
“产品型号”:“Andy%2彼得斯”
}, {
“产品标识”:“2”,
“产品型号”:“Tom%2感谢”
}, {
“产品id”:“1”,
“产品型号”:“HFJ5G1.5”
} ];
//控制台设置
var consoleLine=“”;
控制台={
日志:函数(文本){
$(“#控制台日志”).append($(consoleLine.html(text));
}
};代码>
.console行{
字体系列:控制台;
保证金:2倍;
}
…这将产生这个[0]
,这个[1]
…有什么意义?您处于每个循环中。所以这个
是一项。为什么不data=decodeURIComponent(JSON.stringify([您的数据对象])
然后执行JSON.parse(data)
这将一次性解码所有数据。谢谢Mouser,问题解决了!另外,控制台纯粹是为了在JSFIDLE/CodeSnippet上演示。@platinums-仅供参考,ray
数组中的额外逗号在IE8及更早版本中出现中断。@wahwah,没有看到这些。感谢您提及,更新了我的解决方案。Mouser还请解释为什么您“将所有%2E替换为%20”@platinums人类可读性-%2E
是点,%20
是空白。