2017-02-10 38 views

回答

0

也许这样的事情可能有帮助吗?

using System; 
using System.Dynamic; 
using System.Collections.Generic; 
using Newtonsoft.Json.Linq; 

public class Program 
{ 
    public static void Main() 
    { 
     IDictionary<string,object> rptBusDetails = new ExpandoObject(); 
     rptBusDetails["rptBusDetails"] = new List<object> 
     { 
      new Dictionary<string, string>() {{"BusinessOwner", "Mark"}, {"ChartReq", ""}}, 
      new Dictionary<string, string>() {{"BusinessOwner", "Tom"}, {"ChartReq", ""}} 
     }; 
     var parent = new object[] { rptBusDetails }; 

     foreach(var node in parent) 
     { 
      var details = JObject.FromObject(node); 
      foreach(var detail in details["rptBusDetails"]) 
      { 
       string owner = detail["BusinessOwner"].Value<string>(); 
       Console.WriteLine(owner); 
      }   
     } 
    } 
} 

[更新]

+0

感谢您的回复,Itried的方式,但它显示了在 “的foreach(VAR东西(阵列)childNode)”不能转换对象数组 我要的是 我从我的AJAX POST方法获取对象在客户端,我得到和具有json字段的对象数组。我想获得这些字段的值。下面是我正在形成的json字符串,作为对象{rptBusDetails:[[{“BusinessOwner”:“mark”,“ChartReq”:“”,“ColorReq”:“”,“EmailList”:“”,“ReportApplication “:”“ReportAud”:“”“ReportDelivery”:“”ReportDesc“:”“}],} – Sandy

+0

尝试使用JObject.Parse将该对象转换为JObject(而不是数组) //www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_Linq_JObject__ctor_2.htm),然后通过访问属性http://stackoverflow.com/a/9010085/1162991 – dimpho

+0

没有运气 无法投射“System”类型的对象。 Collections.Generic.Dictionary'2 [System.String,System.Object]'键入'Newtonsoft.Json.Linq.JObject'。 – Sandy

0

你有什么尝试?根据你的问题,这应该是一件容易的事情。

List<string> businessOwners = new List<string>(); 
foreach (object[] objArray in rptBusDetails) { 
    foreach (object obj in objArray){ 
     businessOwners.Add((JToken)obj["BusinessOwner"].ToString()); 
    } 
} 

因为您没有说明您想要如何处理BusinessOwner属性,所以我将它们放入列表中。

+0

安德鲁您好,感谢您的回复,我想要得到业主的价值是“马克” 我试过你的解决方案,但它说“不能应用索引的类型对象” – Sandy

+0

@Sandy你正在使用动态对象时,你真的应该使用JTokens,尝试将obj作为JToken进行投射。为什么你反对使用对象作为类型? – Andrew

+0

我从客户端的ajax post方法中获取对象,获取和具有json字段的对象数组。我想获得这些字段的值。下面是作为对象传递 { \t rptBusDetails正在形成我的JSON字符串:[ \t \t [{ \t \t \t “BusinessOwner”: “标志”, \t \t \t “ChartReq”: “”, \t \t \t “ColorReq”: “”, \t \t \t “的emailList”: “”, \t \t \t “ReportApplication”: “”, \t \t \t “ReportAud”: “”, \t \t \t “ReportDelivery”: “”, \t \t \t “ReportDesc”: “”, \t \t \t “ReportDisplay”: “”, \t \t \t“ReportFormat “: “”, \t \t \t “ReportFreq”: “”, \t \t \t “ReportFreqDesc”: “”, \t \t \t “ReportTitle”: “” \t \t}], \t \t} – Sandy