更改 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 不起作用
如何从 Map<String, List<String>> 获取数组值并放入 setOnMarkerClickListener?