2017-12-03 160 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