[英]Having Trouble in Deserializing JSON with nested arrays in C#
我在這里嘗試反序列化此JSON時遇到了麻煩:
{
"CstCmpCode": "AH01",
"Loaded_date": "13-Aug-2016",
"Main_Group": "Neck Wraps",
"sub_group": [
{
"Sub_Group": "AFGHANI",
"ClosBal": 7
},
{
"Sub_Group": "AFGHANI",
"ClosBal": 13
},
{
"Sub_Group": "AFGHANI",
"ClosBal": -15
}
]
}
我為此創建的代碼或類是:
public void TempStock(string CstCmpCode)
{
try
{
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["TallyWeb"].ToString());
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select CstCmpCode, Loaded_date, Main_Group, Sub_Group, ClosBal from TlyStkSumm where CstCmpCode = @CstCmpCode";
cmd.Parameters.AddWithValue("@CstCmpCode", CstCmpCode);
DataSet ds = new DataSet();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.SelectCommand.Connection = con;
da.Fill(dt);
con.Close();
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
Dictionary<string, object> row = null;
foreach (DataRow rs in dt.Rows)
{
row = new Dictionary<string, object>();
foreach (DataColumn col in dt.Columns)
{
row.Add(col.ColumnName, rs[col]);
}
rows.Add(row);
}
this.Context.Response.ContentType = "application/json; charset=utf-8";
//this.Context.Response.Write(serializer.Serialize(rows));
string json;
json = JsonConvert.SerializeObject(rows);
//////JsonTest jobj2 = JsonConvert.DeserializeObject<JsonTest>(json);
////var objResponse1 = JsonConvert.DeserializeObject<List<JsonTest>>(json);
//JavaScriptSerializer oJS = new JavaScriptSerializer();
//////testobject objtec = new testobject();
////objtec = oJS.Deserialize<testobject>(json);
////objtec = oJS.Deserialize<List<testobject>>(json);
////var s = new JavaScriptSerializer();
////var t = s.Deserialize<List<JsonTest>>(json);
//var jobj2 = new JavaScriptSerializer().Deserialize<List<JsonTest>>(json);
//var test = JsonConvert.DeserializeObject<List<JsonTest>>(json);
var myObj = JsonConvert.DeserializeObject<List<MyClass>>(json);
//MyClass c = serializer.Deserialize<MyClass>(json);
}
catch (Exception ex)
{
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
this.Context.Response.ContentType = "application/json; charset=utf-8";
this.Context.Response.Write(serializer.Serialize(ex.Message));
}
}
public class JsonTest
{
public string CstCmpCode { get; set; }
public string Loaded_date { get; set; }
public string Main_Group { get; set; }
//public sub_group[] s;
public List<sub_group> sub { get; set; }
}
public class sub_group
{
public string Sub_Group { get; set; }
//public string ClosBal { get; set; }
}
請 告訴我我要去哪里錯了
將Newtonsoft.Json nuget包下載到您的項目中並使用此代碼
這是你的模特
public class MyClass
{
public string CstCmpCode { get; set; }
public string Loaded_date { get; set; }
public string Main_Group { get; set; }
public Result[] results { get; set; }
}
public class Result
{
public string Sub_Group { get; set; }
public int ClosBal { get; set; }
}
您可以像這樣反序列化您的字符串
var myObj= JsonConvert.DeserializeObject<MyClass>(json)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.