C#获取JSON对象的名称



我在一个名为resultString的字符串中存储了一个JSON,它看起来像这样:

{"BRC1": {"image": "9b.jpg", "query": "led", "status": "ok", "data": {"value": {"LED_1": "OFF", "LED_2": "OFF", "LED_3": "OFF", "LED_4": "RED", "LED_5": "RED", "SILA": "ON", "ASLED": "ORANGE"}}}}

现在我想得到值"BRC1"作为字符串。

如果你只想"对象中第一个属性的名称";然后你可以使用:

var data = (JObject)JsonConvert.DeserializeObject(resultString);
IEnumerable<KeyValuePair<string, JToken>> pairs = data;
string firstName = pairs.FirstOrDefault().Name;

如果对象实际上为空,则firstName将为空。

如果您只需要BRC1值作为json字符串,并且您不知道根属性名称,请尝试此

string rootName = JObject.Parse(json).Properties().First().Name; // "BRC1"

string  rootJson = JsonConvert.SerializeObject (JsonConvert.DeserializeObject<JObject>(rootJson));

结果

{"image":"9b.jpg","query":"led","status":"ok","data":{"value":{"LED_1":"OFF","LED_2":"OFF","LED_3":"OFF","LED_4":"RED","LED_5":"RED","SILA":"ON","ASLED":"ORANGE"}}}

或者如果你想把它作为转义字符串

var rootJsonEscaped = JsonConvert.SerializeObject(rootJson)

结果

"{"image":"9b.jpg","query":"led","status":"ok","data":{"value":{"LED_1":"OFF","LED_2":"OFF","LED_3":"OFF","LED_4":"RED","LED_5":"RED","SILA":"ON","ASLED":"ORANGE"}}}"

或者如果你想格式化

string rootJson = JObject.Parse(json).Properties().First().Value.ToString();

结果

{
"image": "9b.jpg",
"query": "led",
"status": "ok",
"data": {
"value": {
"LED_1": "OFF",
"LED_2": "OFF",
"LED_3": "OFF",
"LED_4": "RED",
"LED_5": "RED",
"SILA": "ON",
"ASLED": "ORANGE"
}
}
}

相关内容

  • 没有找到相关文章

最新更新