我有一个JSON文件(如下)。我的目标是,用<form id='publishForm'>
<input type=submit....
</form>
$("#publishForm").submit(function (event) {
alert("Handler for .submit() called.");
event.preventDefault();
)};
(此JSON unit_ids
中的fe:unit_ids
,153470
和153471
)以及相应的{{1}填写字典。 (此JSON对应178903
中的fe为:classtype_id
,classtype_id
,CW
)。 (CW
是唯一的)
所以f.e.我的字典可能是:null
,unit_ids
,{[153470, CW]
。
但是在我目前的方法中存在一个问题,因为有可能:[153471, CW]
就像f.e.在此文件中:[178903, null]}
。
"unit_id":null
我需要帮助,因为我的解决方案崩溃(超出范围异常) - "178903": null
比Dictionary<string, string> unit_id_translate = new Dictionary<string, string>();
var unitIdsTypes = JObject.Parse(unit_ids_json).SelectTokens("*.['classtype_id']");
var unitIdsNumbers = JObject.Parse(unit_ids_json);
List<String> tempForUID = new List<String>();
List<String> tempForVAL = new List<String>();
foreach (var unitIdType in unitIdsTypes)
{
tempForVAL.Add(unitIdType.ToString());
}
foreach (var unitIdNumber in unitIdsNumbers)
{
foreach (var tmp44 in unitIdNumber)
{
var trimmedNr = unitIdNumber.Cast<JProperty>().Select(o => o.Name);
foreach (var unitIdNr in trimmedNr)
{
tempForUID.Add(unitIdNr);
}
break;
}
}
for (int i = 0; i < tempForUID.Count(); i++)
{
unit_id_translate.Add(tempForUID.ElementAt(i), tempForVAL.ElementAt(i));
}
更多 - 因为unit_ids
值。
我能做些什么来解决这个问题?
classtype_id
答案 0 :(得分:0)
您可以使用Enumerable.ToDictionary()
轻松完成此操作:
var unit_id_translate = JObject.Parse(unit_ids_json)
.Properties()
.ToDictionary(p => p.Name, p => (string)p.Value.SelectToken("classtype_id"));
然后
Console.WriteLine(JsonConvert.SerializeObject(unit_id_translate));
生成{"153470":"CW","153471":"CW","178903":null}
。