2013-11-23 294 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#程序员,但问题引起了我的兴趣。

相关问题