2012-04-25 18 views
5

Ben benziyor json vardır: Benjson.net SelectToken gömülü "."

firstToken = queryResults.SelectToken("queries") 

yapmak ve LinqJToken

{"F.SP": 27} 

geri alabilirsiniz

queryResults = JObject.Parse(jsonString) 

ile çok

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

ama ben m sonra sıkışmış, çünkü

Hiçbir şey anlamadım. Sanırım JSON.net, "SP" subtoken ile bir "F" jetonu arıyor.

Ben de boşuna, aşağıdakilerden her biri denedim

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

() hiçbir şey döndürür queryResults.SelectToken ("[0] sorgular" FWIW)

Herhangi bir fikir?

DÜZENLEME: Gömülü "." Olduğunu doğruladım. sorun ise; Ben

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

orijinal json değiştirirseniz ben

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

sorun

cevap

3

...

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

en şık değil yapabileceği ama değerini alır. Bu belirteç kendisi dönmeyecek, ancak (yine aradığınız muhtemelen budur) değeri döndürecektir

1

yerine bir konuda ne SelectToken, kullanmaya çalışmakla dizin araması

subToken = queryResults["F.SP"];