我在一个名为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"
}
}
}