我試圖檢查是否在json中有一定的屬性。Json返回空間
{[
{
"trace": {
"details": {
"data": "[29-02-2016 17:37:32.931751]",
"type": "[info]",
"text": "[Done.]"
},
"context": {
"context": [
[
{
"ID": "John Dillinger"
}
]
]
}
}
}
]}
在
x
變量
我已刪除了空間,最後的結果是::其實我能做到這一點通過以下方式:作爲
var container = (JContainer)JsonConvert.DeserializeObject(responseText);
var x = container.ToString(Formatting.None);
var message = container["text"];
現在變量responseText
返回
"[{\"trace\":{\"details\":{\"data\":\"[29-02-2016 17:37:32.931751]\",\"type\":\"[info]\",\"text\":\"[Done.]\"},\"context\":{\"context\":[[{\"ID\":\"John Dillinger\"}]]}}}]"
現在,如果找不到密鑰,我會得到null
:
if (message == null)
{
return responseText;
}
的問題是,我執行檢查的message
可變的條件,如果在container
(未格式化),該場所,問題是,我得到這個異常:
{「訪問具有無效鍵值的JArray值:\「text \」。 INT32數組索引的預期。「}
但如果我用斜槓第二JSON更換container
所有的工作好。現在我的問題是,我不能執行var message= x["text"];
「事業x
是一個字符串。因此,如何我可以在JSON刪除空間,並檢查是否包含text
關鍵?
爲什麼不直接從'container'看了嗎?我不明白爲什麼你需要刪除所有的空白之前閱讀該屬性? –
@JamesThorpe'因爲如果我從容器中讀取我得到:'{「訪問JArray值與無效鍵值:\」文本\「。Int32數組索引預期。」}'特別是似乎鑄造'JContainer'增加空間打破了JSON。相反,如果我用一個包含json的示例變量來取代我得到的實現結果,但我需要從包含該請求的變量中獲取它。 – Sandokan
你是否意識到你真的什麼都不做? x是你去除空間的地方,但你不用它來做任何事情...... – Gusman