2013-11-23 224 views
3

我已經使用.ToJSON()從JSON.NET如何判斷一個JSON對象是否是一個數組?

這接通與2個或更多多個XML元素成陣列的事情改變了我的XML成JSON,而燒毛元件不是。

<trendstats> 
     <paramFile version=\"1.0\" createdBy=\"PowerStats v1.0\" test=\"ohoh\"> 
     </paramFile> 
</trendstats> 

變爲:

"trendstats": { 
    "paramFile": { 

雖然:

<trendstats> 
     <paramFile version=\"1.0\" createdBy=\"PowerStats v1.0\" test=\"ohoh\"> 
     </paramFile> 
     <paramFile version=\"1.0\" createdBy=\"PowerStats v1.0\" test=\"ohoh\"> 
     </paramFile> 
</trendstats> 

變爲:

"trendstats": { 
    "paramFile": [ { 

我怎麼能告訴他們分開?

+1

對於其他人可能會覺得它很有用:除了本頁的答案,另請參閱[這個答案](http://stackoverflow.com/a/20158103/10263)對@ chris的相關問題,這解釋了爲什麼出現這種情況併爲處理它提供了一種替代解決方案。 –

回答

1

這個page告訴你如何告訴JSON.NET強制xml元素總是產生數組。這樣,你就不必猜測它是什麼類型。

+0

我正在使用JSON.NET我沒有長度屬性。 JToken token = JObject.Parse(json);然後使用token [「..」]。lenght不存在 – cdub

+0

明白了。 http://james.newtonking.com/json/help/index.html搜索「屬性強制」它將解決你對數組或對象的問題。 – rdodev

+0

我還沒有看到它,我錯過了什麼? – cdub

0

因此,它看起來像你對我有幾個選擇:

  1. 瞭解多少元素在paramFile。我不禁想知道它是否有一個.Length而不是一個.length(case)。這表明它的確如此。 http://msdn.microsoft.com/en-us/library/system.array.length(v=vs.110).aspx
  2. 通過改變rdodev建議的xml,強制它成爲一個或另一個。
  3. 強制它成爲c#中的一員 - 儘管當你這樣做並且弄清楚它給你什麼樣的錯誤時,你將會有一個你可以使用的測試。

我不是C#程序員,但問題引起了我的興趣。

相關問題