2017-02-10 86 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