c# - 如何基于@para-id将数据绑定到JSON文件
问题描述
在我的项目客户端中,将这个 JSON 字符串发送给我。
{
"onlineRequest": {
"CustomerCode": "AB432A",
"MobileNumber": "75484568",
"ProductNo": "100",
"JsonFile": {
"evaluation": {
"number": [
{
"@para-id": "5656",
"@new-code": "",
"@text": "Hello America"
},
{
"@para-id": "3302",
"@new-code": "100",
"@text": "Hello Japan"
}
]
}
}
}
}
此 JSON 包含名为JsonFile
. 现在我需要将值设置为此 JSON 文件,如下所示。
if @para-id = 5656, then @new-code = "0000"
if @para-id = 3302, then @new-code = "1111"
预期输出:
{
"onlineRequest": {
"CustomerCode": "AB432A",
"MobileNumber": "75484568",
"ProductNo": "100",
"JsonFile": {
"evaluation": {
"number": [
{
"@para-id": "5656",
"@new-code": "0000",
"@text": "Hello America"
},
{
"@para-id": "3302",
"@new-code": "1111",
"@text": "Hello Japan"
}
]
}
}
}
}
我怎样才能做到这一点?
解决方案
可以通过以下方式轻松完成Newtonsoft.Json
:
var source = @"{
""onlineRequest"": {
""CustomerCode"": ""AB432A"",
""MobileNumber"": ""75484568"",
""ProductNo"": ""100"",
""JsonFile"": {
""evaluation"": {
""number"": [
{
""@para-id"": ""5656"",
""@new-code"": """",
""@text"": ""Hello America""
},
{
""@para-id"": ""3302"",
""@new-code"": ""100"",
""@text"": ""Hello Japan""
}
]
}
}
}
}";
var json = JToken.Parse(source);
var dict = new Dictionary<string, string>
{
["5656"] = "0000",
["3302"] = "1000",
};
foreach (var number in json.SelectToken("onlineRequest.JsonFile.evaluation.number").ToArray())
{
var id = (string)number["@para-id"];
if (id != null && dict.TryGetValue(id, out var code))
{
number["@new-code"] = code;
}
}
推荐阅读
- python - 在以下情况下,年龄是分类列吗?
- r - 使用 VGAM 包在 R 中创建可信区间
- postgresql - postgresql:postgresq 创建 null 到 100 之间的随机整数
- android - 如何在 Jetpack compose OutlinedButton 中删除或减少填充
- javascript - 收到“未处理的承诺拒绝”错误
- powershell - Powershell 重命名日期时间格式的文件
- c++ - 如何在 C++ 中打印对象向量?
- google-chrome-extension - 使用 google chrome 扩展在 MV3 中为远程主机松开“script-src”
- python - 在 Python 中重用另一个类的方法而无需继承或委托
- r - 如何在r中使用谱分解求矩阵的求逆和平方根?