更改 Json 数组的值并放入 Hiddenfield

Posted

技术标签:

【中文标题】更改 Json 数组的值并放入 Hiddenfield【英文标题】:Change value on Json array and put in Hiddenfield 【发布时间】:2018-10-19 15:02:33 【问题描述】:

我在asp.net的hiddenfield里有下一段文字,这个值为Json serialize

text = "[ "Element":"E001", "City":"Madrid", "Country":"Spain",
     "Element":"E003", "City":"Paris", "Country":"Italy",
     "Element":"A001", "City":"Pekin", "Country":"China"]

我想用这样的 JS 函数改变元素的值

function ModificarDato(jsonelemento, jsonvalor)

    var vjson = eval($("[ id$='H_Ins").val());
    var vjson2 = `$`(jQuery.parseJSON(JSON.stringify(vjson))).each(function ()
    
        var vElemento = this.Element;
        var vCity = this.City;
        var vValor = this.Country;

        if (vElemento == jsonelemento)
        
            this.Country = jsonvalor;
        
    );

    var jsonvalorfinal = JSON.stringify(vjson2);

    alert("Valor final : " + jsonvalorfinal);
    $("[ id$='H_Ins").val(jsonvalorfinal);

问题是当我将 jsonvalorfinal 放在隐藏字段中时,文本是不同的

text = ""0":"Element":"E001", "City":"Madrid", "Country":"Spain",
    "1":"Element":"E003", "City":"Paris", "Country":"France",
    "2":"Element":"A003", "City":"Pekin", "Country":"China",
    "length":3

我需要第一个字符串的相同格式才能继续使用另一个函数。有可能

谢谢

【问题讨论】:

I want change the value of element whith a JS function like this 我不明白吗?你能清楚地说明你想做什么吗? 用户按下了一系列按钮,每个按钮都执行函数 ModificarDato("E003", "France"); 所以你想更新你的 JSON 数组?与函数的参数? 【参考方案1】:

你可以这样做,你可以找到你要更新的对象的索引并更新它的国家属性。

function ModifyData(element, newCountryValue) 
  let text = `[
    
        "Element": "E001",
        "City": "Madrid",
        "Country": "Spain"
    ,
    
        "Element": "E003",
        "City": "Paris",
        "Country": "Italy"
    ,
    
        "Element": "A001",
        "City": "Pekin",
        "Country": "China"
    
]`;

  let parsedArray = JSON.parse(text);

  let indexToBeModified = parsedArray.findIndex(item => item.Element == element);

  parsedArray[indexToBeModified].Country = newCountryValue;

  return parsedArray;



let modifiedArray = JSON.stringify(ModifyData("E001", "United States"), null, 4);

$("[ id$='H_Ins").val(modifiedArray);

【讨论】:

以上是关于更改 Json 数组的值并放入 Hiddenfield的主要内容,如果未能解决你的问题,请参考以下文章

从 NSDictionary 获取 JSON 值并放入 NSString 不起作用

提取数组的值并添加到同一个select mongoDB中

将 JSON 元素放入数组中

如何从 Map<String, List<String>> 获取数组值并放入 setOnMarkerClickListener?

js中怎么把值放入数组中

从 MySQL JSON 列中提取 JSON 对象的值作为数组