簡體   English   中英

如何在此JSON字符串的數組中獲取屬性?

[英]How do I get properties in the array in this JSON string?

在下面的JSON字符串中,如何訪問“數據流”數組中的“ at”和“ current_value”屬性的值?

在此示例中,只有一個數據流,但實際上可能有很多。 我需要通過“ id”屬性訪問數據流。 一旦確定了這個問題,我計划使用id ==的where子句作為所需數據流的id。

我嘗試使用此處討論的“ Windows 8中的JSON –一種更簡單的方法”下的方法,但是它不起作用。

在此代碼中, json包含從我正在調用的服務返回的JSON。 prop中填充了JsonArray current導致內部消息為“找不到JSON值”的異常

var json = JsonObject.Parse(responseBodyAsText);
var prop = json.GetNamedArray("datastreams");

var current = from p in prop
    select new
    {
       datastream = p.GetObject().GetNamedString("datastreams"),
       datetime = p.GetObject().GetNamedString("at"),
       value = p.GetObject().GetNamedString("current_value")
    };

這是JSON字符串:

{
   "title":"X",
   "status":"X",
   "creator":"X",
   "datastreams":
      [
         {
            "at":"x",
            "max_value":"X",
            "current_value":"X",
            "id":"X",
            "min_value":"X"
         }
      ],
   "location":{"exposure":"x","domain":"x","disposition":"x","lat":X,"lon":-X},
   "created":"X",
   "tags":["X"],
   "feed":"X",
   "private":"X",
   "id":X,
   "description":"X",
   "version":"X",
   "updated":"X"
}

datastream = p.GetObject()。GetNamedString(“ datastreams”)

上面的代碼應返回一個對象數組。 您將需要遍歷對象數組以檢查每個對象的“ at”和“ current_value”屬性的值。

您可以通過[]注意到數據流返回一個數組,因此:

datetime = datastream[0].at
value = datastream[0].current_value

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM