Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have the following JSON object data returned from my apicontroller :

[  
  {"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} 
]

I want to replace "parent":null with "parent":'"#"'

I have tried the code below, but it is only replacing the first occurrence of "parent":null. How can I replace all "parent":null entries?

$(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); }
    });
});

Thanks,

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
298 views
Welcome To Ask or Share your Answers For Others

1 Answer

You need to make the replace global:

var old = JSON.stringify(data).replace(/null/g, '"#"'); //convert to JSON string
var newArray = JSON.parse(old); //convert back to array

This way it will continue to replace nulls until it reaches the end

Regex docs:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

Also, as a side note, you should avoid using new as a variable name as it is a reserved word in javascript and most browsers will not allow you to use it


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...