C# 如何检索元素键值?
我遇到了一个问题,当我扫描二维码时,我需要帮助检索某个键值,但出于某种原因,我检索的是C# 如何检索元素键值?,c#,json,C#,Json,我遇到了一个问题,当我扫描二维码时,我需要帮助检索某个键值,但出于某种原因,我检索的是ID。但是,我想取而代之的是候选ID。有人能帮我解决这个问题吗?提前谢谢 JSON: { "ef4b0f54-e246-468b-ada9-465777c6e743": { "CandiateID": "d9c4ba35-6c68-41de-b11c-f4226701c05a", // I want to retrieve this when I scan the QR
ID
。但是,我想取而代之的是候选ID
。有人能帮我解决这个问题吗?提前谢谢
JSON:
{
"ef4b0f54-e246-468b-ada9-465777c6e743": {
"CandiateID": "d9c4ba35-6c68-41de-b11c-f4226701c05a", // I want to retrieve this when I scan the QR code.
"ID": "ef4b0f54-e246-468b-ada9-465777c6e743" // I am getting only this when I scan the QR Code.
}
}
您没有获得
ID
——您正在读取JSON的根值。这些值完全相同,因此看起来您只是在读取ID字段
将JSON转换为动态对象时,可以使用属性索引器访问正确的值
在您的情况下,您可以使用以下选项:
var results = JsonConvert.DeserializeObject<dynamic>(barCodeValue);
string id = results["ef4b0f54-e246-468b-ada9-465777c6e743"]["CandiateID"];
var results=JsonConvert.DeserializeObject(barCodeValue);
字符串id=结果[“ef4b0f54-e246-468b-ada9-465777c6e743”][“CandiateID”];
第一个值是JSON的根元素
第二个值是JSON-CandiateID
局部变量
id
现在包含来自JSON的CandiateID
属性。您可以使用Linq。比如说
var jObject = JObject.Parse(barCodeValue);
var candidateID = jObject.Descendants()
.OfType<JProperty>()
.Where(x=>x.Name=="CandiateID")
.First().Value;
var jObject=jObject.Parse(barCodeValue);
var candidateID=jObject.subjects()
第()类
.Where(x=>x.Name==“CandiateID”)
.First()值;
如果要获取多个CandidateID,可以使用
var candidateIDs = jObject.Descendants()
.OfType<JProperty>()
.Where(x=>x.Name=="CandiateID")
.Select(x=>x.Value);
var candidateIDs=jObject.subjects()
第()类
.Where(x=>x.Name==“CandiateID”)
.选择(x=>x.Value);
您将反序列化为动态
有什么原因吗?web服务的响应数据是否有文档记录?嗯,没有。请查看更新的问题。我按照你给我的进行了调试,没有显示CandidateID