我希望編寫一些 C#,它允許客戶端提供 JSON 字符串和查詢字符串。然后,查詢字符串將用于尋址 JSON 對象中的值。例如,如果我有這個 JSON:{ "head": "big", "fingers": [ "one", "thumb", "two", "ring" ], "arm": { "elbow", "locked" }}這個查詢字符串:"fingers.two"我想返回該值"ring"。這(或類似的東西)在 C# 中可能嗎?我嘗試過使用該類ExpandoObject,但這不允許動態運行時檢查:var json = JsonConvert.DeserializeObject<ExpandoObject>(jsonStr);據我所知,變量值的發現json需要在代碼時而不是運行時完成,這意味著我無法動態找到正在查詢的值。
1 回答

胡子哥哥
TA貢獻1825條經驗 獲得超6個贊
JSONPath 就是這樣做的
假設以下 JSON(修復了原始中的一些語法錯誤)
{
? "head": "big",
? "fingers": {
? ? "one":"thumb",
? ? "two":"ring"
? },
? "arm": {
? ? "elbow": "locked"
? }
}
還有這個查詢
MyJObjectOrToken.SelectToken("fingers.two")
您將得到以下輸出:
[
? ? "ring"
]
使用 JSON.Net 方法將值提取為字符串并將結果返回給用戶應該很簡單。
JSON.Net 內置了對 JSONPath 的支持
- 1 回答
- 0 關注
- 174 瀏覽
添加回答
舉報
0/150
提交
取消