2017-12-03 100 views
1

我尝试使用C#来解析第二大括号内的字符串/ JSONC#JSON解析字符串{X {Y}}

字符串看起来是这样的:

{"R27":{"DEVX":0.1346224}} 

我的目标是读DEVX的价值,这是0.1346224

我已经试过:

var joR = JObject.Parse(R); 
string R27 = joR["R27"].ToString(); 

个返回值:{ “DEVX”:0.1346224}}

string R27 = joR["DEVX"].ToString(); 

返回错误

有没有办法直接获取价值 “0.1346224” 没有用绳子打?

+0

是的:-)但是你需要工作什么对象“DEVX”是一个属性。 –

回答

1

是的,绝对是 - 假设你知道所涉及的两个名字,你可以只指数两次,第一次拿到对象R27,那么一旦该对象中得到的DEVX值:

using System; 
using Newtonsoft.Json.Linq; 

public class Test 
{ 
    static void Main() 
    { 
     string json = "{\"R27\":{\"DEVX\":0.1346224}}"; 
     var obj = JObject.Parse(json); 
     double devX = (double) obj["R27"]["DEVX"]; 
     Console.WriteLine(devX); 
    } 
} 
+0

谢谢。我很接近。只是很小的语法错误。现在工作很好。 – Lorean

+0

@Lorean:注意转换为'double'而不是'string',因为它*是* JSON中的一个数值。当然,您可能会稍后将其转换为字符串,但我会尽可能长时间保持其“自然”形式。 (特别是,不要将其转换为字符串,然后再解析它...) –

+0

谢谢。这种方式甚至更好。 – Lorean

1
var joR = JObject.Parse(R); 
var R27 = joR["R27"]["DEVX"].ToString(); 
+0

谢谢。我很接近。只是很小的语法错误。现在工作很好。 – Lorean

+0

没有toString,强制转换为更好的解决方案 – Yitzchak