2012-04-25 6 views
5

मैं json कि लगता है कि है:json.net एम्बेडेड के साथ चयन टोकन "।"

myjson = {"queries":{"F.SP": 27}} 
तो

queryResults = JObject.Parse(jsonString) 

साथ

मैं

firstToken = queryResults.SelectToken("queries") 

करते हैं और LinqJToken

{"F.SP": 27} 

वापस मिल सकता है, लेकिन मैं एम तो अटक गया, क्योंकि जब मैं

subToken = firstToken.SelectToken("F.SP") 

मुझे कुछ भी नहीं मिला। मुझे लगता है कि यह इसलिए है क्योंकि JSON.net उप-टोकन "एसपी" के साथ एक टोकन "एफ" की तलाश में है।

मैं निम्नलिखित में से प्रत्येक की कोशिश की है, कोई लाभ नहीं हुआ

myToken = queryResults.SelectToken("queries.F.SP")  
myToken = queryResults.SelectToken("queries[0].F.SP")  

(queryResults.SelectToken ("प्रश्नों [0]") कुछ भी नहीं देता है, Fwiw)

कोई भी विचार?

संपादित करें: मैंने सत्यापित किया है कि एम्बेडेड "।" समस्या यह है; अगर मैं

{"queries":{"FSP": 27}} 

करने के लिए मूल json बदल रहा

queryResults.SelectToken("queries").SelectToken("FSP") 

कोई समस्या नहीं

उत्तर

3

यह टोकन ही वापस नहीं होगा, लेकिन परिणाम प्रदान करेंगे (जो संभव है कि आप के लिए वैसे भी देख रहे है) ...

queryResults.SelectToken("queries").Value<int>("F.SP"); 
0
JObject obj = JObject.Parse(jsonstring); 
var fsp = obj["queries"].First().First(); 

सबसे खूबसूरत नहीं कर सकते हैं, लेकिन यह मूल्य हो जाता है।

1

इसके बजाय एक के बारे में SelectToken, उपयोग करने के लिए कैसे की कोशिश कर के सूचकांक खोज?

subToken = queryResults["F.SP"]; 
1

आप JSON क्षेत्रों में ऐसे नामों हों:

{"queries":{"F.SP": 27}} 

आप SelectToken बचने का उपयोग हो सकता है:

queryResults.SelectToken("queries").SelectToken("['F.SP']") 

या

queryResults.SelectToken("queries.['F.SP']") 

यहाँ से बचने के साथ और अधिक उदाहरण हैं : http://www.newtonsoft.com/json/help/html/QueryJsonSelectTokenEscaped.htm