Erw*_*in1 4 javascript arrays json stringify
我data从apicontroller返回了以下JSON对象:
> [ {"id":2,"text":"PROGRAMME","parent":null},
> {"id":3,"text":"STAGE","parent":2},
> {"id":4,"text":"INFRA","parent":2},
> {"id":5,"text":"SYSTEM","parent":3},
> {"id":6,"text":"STOCK","parent":3}, {"id":7,"text":"DPT","parent":3},
> {"id":9,"text":"EXTERNAL","parent":null} ]
Run Code Online (Sandbox Code Playgroud)
我想,以取代"parent":null与"parent":'"#"'
我已经尝试过下面的代码,但它只是替换了第一次出现的代码"parent":null.如何更换所有"parent":null条目?
<script>
$(document).ready(function () {
$.ajax({
url: "http://localhost:37994/api/EPStructures2/",
type: "Get",
success: function (data) {
var old = JSON.stringify(data).replace(null, "'#'"); //convert to JSON string
var new = JSON.parse(old); //convert back to array
},
error: function (msg) { alert(msg); }
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
谢谢,
Jon*_*owe 15
你需要使替换全局:
var old = JSON.stringify(data).replace(/null/g, '"#"'); //convert to JSON string
var newArray = JSON.parse(old); //convert back to array
Run Code Online (Sandbox Code Playgroud)
这样它将继续替换null,直到它结束
正则表达式文档:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
另外,作为旁注,你应该避免使用new变量名,因为它是javascript中的保留字,大多数浏览器都不允许你使用它
nra*_*itz 12
@ JonathanCrowe对正则表达式的回答是正确的,但这是正确的选择吗?特别是如果你有很多项目,你最好修改解析的对象,而不是运行它来JSON.stringify获得正则表达式解决方案:
data.forEach(function(record) {
if (record.parent === null) {
record.parent = "#";
}
});
Run Code Online (Sandbox Code Playgroud)
除了更快,这不会意外地替换你想要保留的其他空值,或者像记录那样陷入困境{ text: "Denullification Program"}.
| 归档时间: |
|
| 查看次数: |
52496 次 |
| 最近记录: |