- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的情况:
我有一个解析为 JObject 的 JSON 字符串。
JObject jObject = JObject.Parse(json);
我跳转到 JSON 中的“白名单”标记
JToken token = jObject.SelectToken("whitelist");
我想遍历我的白名单(子)值,进入子值并将我的值获取/发送到文本框。循环很好,但我如何读出 x 的值并将它们放入字符串或将它们发送到文本框?
foreach (JToken x in token)
{
//Want my values from x!
}
使用 JObject 我可以这样完成它,但我希望它与 JToken 一起使用:
foreach (var x in jObject)
{
string bulbno = x.Key;
JToken obj = x.Value;
dictionaryBulbs.Add(bulbno, (string)obj["name"]);
}
我的 JSON 输入:
{
"name": "Philips hue",
"zigbeechannel": 20,
"bridgeid": "001788FFFE4957F4",
"mac": "00:17:88:49:57:f4",
"dhcp": true,
"ipaddress": "192.168.0.50",
"netmask": "255.255.255.0",
"gateway": "192.168.0.254",
"proxyaddress": "none",
"proxyport": 0,
"UTC": "2018-06-20T16:52:16",
"localtime": "2018-06-20T18:52:16",
"timezone": "Europe/Amsterdam",
"modelid": "BSB002",
"datastoreversion": "70",
"swversion": "1804201116",
"apiversion": "1.25.0",
"swupdate": {
"updatestate": 0,
"checkforupdate": false,
"devicetypes": {
"bridge": false,
"lights": [],
"sensors": []
},
"url": "",
"text": "",
"notify": true
},
"swupdate2": {
"checkforupdate": false,
"lastchange": "2018-06-09T17:31:24",
"bridge": {
"state": "noupdates",
"lastinstall": "2018-05-17T19:45:47"
},
"state": "noupdates",
"autoinstall": {
"updatetime": "T14:00:00",
"on": false
}
},
"linkbutton": false,
"portalservices": true,
"portalconnection": "connected",
"portalstate": {
"signedon": true,
"incoming": false,
"outgoing": true,
"communication": "disconnected"
},
"internetservices": {
"internet": "connected",
"remoteaccess": "connected",
"time": "connected",
"swupdate": "connected"
},
"factorynew": false,
"replacesbridgeid": null,
"backup": {
"status": "idle",
"errorcode": 0
},
"starterkitid": "",
"whitelist": {
"1buaoU3xjmyKgnakr5ci4bw3HxUJkc5xjhROSqJ-": {
"last use date": "2018-06-20T16:45:44",
"create date": "2017-03-18T22:26:42",
"name": "Hue 2#Samsung SM-G930F"
},
"57kRCjXnD5jnEv4cBcoWt5bmHZigTUNVnV5IBjal": {
"last use date": "2017-03-19T16:30:36",
"create date": "2017-03-19T16:19:21",
"name": "HueDiscoBridgeConnec#SM-G930F"
},
"V4ritG8iH79Isyvp3tv6SZaJsmQ3gWd7yRMCpYiQ": {
"last use date": "2018-05-28T13:30:45",
"create date": "2017-03-19T16:22:18",
"name": "Hue 2#Samsung SM-G925F"
},
"qwonzSD2YDp4ApzYxcvJ16nVkVxiqryVYvcUv72G": {
"last use date": "2018-06-19T14:30:44",
"create date": "2017-03-19T20:38:23",
"name": "HueDiscoBridgeConnec#SM-G930F"
},
"4603-KtV5WCh1VrMuJmmGXjXxYuwmw3W8L8UPe9P": {
"last use date": "2017-04-20T21:11:28",
"create date": "2017-03-25T21:34:03",
"name": "OnSwitch#SM-G930F"
},
"990Pgq8dEaaY2ciaiMRZMtdTeYNSyjtE06GLSEfw": {
"last use date": "2018-05-25T16:45:45",
"create date": "2017-03-26T19:20:18",
"name": "all 4 hue#SM-G930F"
},
"-7eAHxy45PsR6PNMR0hO-ykwXrEZBXtxApJBmUZQ": {
"last use date": "2017-03-26T20:16:59",
"create date": "2017-03-26T20:16:59",
"name": "HueNest#WebService"
},
"bWZViDh0GkhiulzdtjrOjZNkn5LhYr-Z5ZmOXAXh": {
"last use date": "2017-03-26T20:17:23",
"create date": "2017-03-26T20:17:23",
"name": "HueNest#WebService"
},
"LXDX8UiFtlbjNg7nvlt6-qUFN2LpZ-N4S4tybmE0": {
"last use date": "2018-02-10T15:27:09",
"create date": "2017-03-26T20:17:27",
"name": "HueNest#WebService"
},
"81YsJYmv08gDB36W52H0WWGe2aZttE06uAWgQByl": {
"last use date": "2017-03-26T20:39:20",
"create date": "2017-03-26T20:25:59",
"name": "iftttv2"
},
"lzQiOJsWQ5sVBMuIlaLzxO3KOw8VE-rODJrU2c6b": {
"last use date": "2017-03-26T20:39:20",
"create date": "2017-03-26T20:28:00",
"name": "iftttv2"
},
"GaBE6-zTFTgnixXmsCCbJsITnArJRWRnVt6xNwRW": {
"last use date": "2018-01-26T21:50:57",
"create date": "2017-11-03T21:03:46",
"name": "talpa_the_voice#8e2e570e558d"
},
"u8kj2jktLZSQrM8etUQ2PKk1y8OkaHuX0pnD610t": {
"last use date": "2018-04-03T20:46:52",
"create date": "2018-04-03T17:58:16",
"name": "philippeshueremote"
},
"2g5bkkfvTARp3BSXNPfXOZKftXuM2-0CkvN98OqF": {
"last use date": "2018-06-19T22:00:44",
"create date": "2018-05-29T16:09:03",
"name": "Hue 2#Samsung SM-A530F"
},
"m-bk9APazTly1qanNxFCPmxCCyDfjEfM42nVbOqF": {
"last use date": "2018-06-20T16:52:16",
"create date": "2018-06-13T18:27:45",
"name": "my_hue_app#test mart"
}
}
}
最佳答案
我会将您的白名单 转换为字典。你可以很容易地使用它来得到你想要的字符串
var jObj= JObject.Parse(jsonstring);
var result = jObj.SelectToken("whitelist").Children().OfType<JProperty>()
.ToDictionary(p => p.Name, p=> new
{
Created = (DateTime)p.First()["create date"],
Name = (string)p.First()["name"]
});
关于c# - 从 jToken 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50956711/
我有以下 Json { "error": { "errors": [ { "domain": "global", "reason": "requ
我有以下... JArray clients = (JArray)clientsParsed["objects"]; foreach (JObject item in clients.Children
JToken.ToObject() 之间有什么区别?方法和 JToken.Value()扩展方法(没有 key 参数的方法)? var jToken = JToken.Parse("123"); va
我有以下 JToken 输出。我如何从 TenantID 中检索此处的“值”,在这种情况下应为 1? {[ { "value": 1, "metadata": { "userType"
我有一个包含参数/值对的 JObject(例如“param1”:“aValue”)。我想根据数据网格中捕获的数据更新这些值。 然后根据定义以下类型的 JSON 架构验证参数值:“字符串”、“整数”和“
假设我有以下 JToken: @"{ ""data"": [ { ""company"": { ""ID"": ""12
我有一个值为 {1234} 的 JToken 如何将其转换为整数值,如 var totalDatas = 1234; var tData = jObject["$totalDatas"]; int t
我有一个 JObject,我想为它设置一个强类型对象的属性。 JObject["ProductionVersion"] = new ProductionVersion(); 为此,需要将 Produc
我有一个 json JTokens 列表: List subjectresults = jObj[jp]["subjects"].Children().ToList(); 请注意,我的 jp 是 va
作为我的问题的后续行动: JSON.NET: Obtain JObject from JProperty Value ... 我阅读了链接并消化了上述评论和建议。现在我想知道:为什么没有“直接”(即简
这是我的情况: 我有一个解析为 JObject 的 JSON 字符串。 JObject jObject = JObject.Parse(json); 我跳转到 JSON 中的“白名单”标记 JToke
这是我的情况: 我有一个解析为 JObject 的 JSON 字符串。 JObject jObject = JObject.Parse(json); 我跳转到 JSON 中的“白名单”标记 JToke
我正在尝试动态查找结构事先未知的 JSON 对象的叶节点名称。首先,我将字符串解析为 JTokens 列表,如下所示: string req = @"{'creationRequest
我有以下JToken: { "ID": "9dbefe3f5424d972e040007f010038f2" } 但每当我在 JToken 对象上运行 ToString() 以获取字符串形式的
在收到来自 API 的响应后,我有以下信息: JObject goatHerd = JObject.Parse(responseString); JToken goat = goatHerd["val
如何将这两个 JToken 合并为一个 JToken。这听起来应该很简单,但我无法绕过它。 { "data":[ { "ID":"53a1862000404a304942546b3
我想比较两个相同类型和结构的任意 JTokens(NewtonSoft 的 Json.Net)。 static int CompareTokens(JToken x, JToken y); // p
我从返回 JSON 响应的 Web 服务获取数据。这是我的代码: WebClient client = new WebClient(); var result = client.DownloadSt
我正在尝试更新 JToken 的值,但它的引用没有得到更新。 JSON 字符串: { "Title": "master", "Presentation": [ {
我想将 JToken 内容反序列化为一个对象(User)。我怎么能做到这一点? 这是我的 json 字符串: string json = @"[{""UserId"":0,""Username"":"
我是一名优秀的程序员,十分优秀!