Person person = JsonHelper.JsonToEntity<Person>(str);
var customfields = JsonHelper.JsonToList<CustomFields>(str);
List<Images> image = JsonHelper.JsonToList<Images>(str);
c.Code = c.Code;
string sql = "insert into dbo.A(UserID,BatchID,CityCode,CustomFields,Images,Time,LineName,Note,PO_Code,Pile,Version,Lat,Lon,Alt,Type,CFCode)values('"
+ person.UserID + "','" + person.BatchID + "','" + person.CityCode + "','" + person.CustomFields + "','"
+ person.Images + "','" + person.Time + "','" + person.LineName + "','" + person.Note + "','" + person.PO_Code + "','"
+ person.Pile + "'," + person.Version + "," + person.Lat + "," + person.Lon + "," + person.Alt + "," + person.Type + ",'"
+ customfields. + "')";
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
string path2 = "E:/國省道采集數(shù)據(jù)";
path = Environment.CurrentDirectory;
string pattern = "Command.txt";
string[] strFileName = Directory.GetFiles(path2, pattern);
foreach (var item in strFileName)
{
File.Delete(item);
}
//var xuliehua = str;
//StreamReader sr = new StreamReader(@"E:\國省道采集數(shù)據(jù)\Command.txt", Encoding.GetEncoding("gb2312"));
//MessageBox.Show(sr.ToString());
}
toolStripProgressBar1.Value = 0;
MessageBox.Show("解壓縮成功!");
}
else
{
MessageBox.Show("警告:請選擇要進行批量解壓縮的文件!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch { }
}
private void txtfiles2_TextChanged(object sender, EventArgs e)
{
}
[DataContract]
public class Person
{
public string UserID { get; set; }
public string BatchID { get; set; }
public string CityCode { get; set; }
public List<CustomFields> CustomFields { get; set; }
public List<Images> Images { get; set; }
public string Time { get; set; }
public string LineName { get; set; }
public string Note { get; set; }
public string PO_Code { get; set; }
public string Pile { get; set; }
public int Version { get; set; }
public double Lat { get; set; }
public double Lon { get; set; }
public double Alt { get; set; }
public int Type { get; set; }
}
[Serializable]
public class CustomFields
{
[DataMember]
public string Code { get; set; }
[DataMember]
public string Value { get; set; }
}
[Serializable]
public class Images
{
public string Time { get; set; }
public string FileName { get; set; }
public double Lon { get; set; }
public double Lat { get; set; }
public double Alt { get; set; }
}
public class JsonHelper
{
public static List<T> JsonToList<T>(string jsonStr)
{
JavaScriptSerializer js = new JavaScriptSerializer();
//List<T> t = (List<T>) js.Deserialize(str, typeof(List<T>));
List<T> t = js.Deserialize<List<T>>(jsonStr);
return t;
}
public static T JsonToEntity<T>(string jsonStr)
{
JavaScriptSerializer js = new JavaScriptSerializer();
T t = js.Deserialize<T>(jsonStr);//(T)js.Deserialize(str, typeof(T));
return t;
}
}
字符串為{"UserID":"huangshan1@78","BatchID":"1489281487936","CityCode":"341000","CustomFields":[{"Code":"GLDWMC","Value":"徽州交通局"},{"Code":"QLMC","Value":"楊村2號橋"},{"Code":"QLBH","Value":"K3001"},{"Code":"JCSJ","Value":""},{"Code":"QLCD","Value":"134"},{"Code":"SJHZ","Value":"1"},{"Code":"AKJF","Value":"2"},{"Code":"AJCHNXF","Value":"1"},{"Code":"B_ISDANGER","Value":"2"},{"Code":"KJZC","Value":"125"},{"Code":"DKZDKJ","Value":"25"},{"Code":"QMQK","Value":"8.5"},{"Code":"QMJK","Value":"7.4"},{"Code":"LXBM","Value":"S103341000"},{"Code":"LDXLH","Value":"001"}],"Images":[{"Time":"Mar 12, 2017 12:00:00 AM","FileName":"/storage/emulated/0/easyroad/collectionpo/1489282287821.jpeg","Lon":118.1775853,"Lat":29.97436336,"Alt":0.0}],"Time":"2017-03-12","LineName":"S103341000","Note":"","PO_Code":"T_ql","Pile":"5.092","Version":2,"Lat":29.97436336,"Lon":118.1775853,"Alt":0.0,"Type":4}
現(xiàn)在person的可以正常轉化,但是CustomFields這個就無法反序列化然后
customfields也點不出來東西
6 回答

三國紛爭
TA貢獻1804條經驗 獲得超7個贊
現(xiàn)在person的可以正常轉化,但是CustomFields這個就無法反序列化然后
customfields也點不出來東西?---》》小伙,這里不是這么用的,要想取customfields中的數(shù)據(jù),你得遍歷??!因為它是一個集合。。。Ienumerable怎么能直接點出來。
反序列化前首先你得弄清楚json數(shù)據(jù)是對象還是數(shù)組,然后再定義對應的實體,調對應的反序列化方法。json的兩種數(shù)據(jù)類型,可以去了解下。
?

交互式愛情
TA貢獻1712條經驗 獲得超3個贊
你的json沒問題,類沒問題,那應該是反序列化出了問題。
試試我的:
Person person = new Person(); person = JsonConvert.DeserializeObject<Person>(json);
你的json中包含了三個類,所以它們是一個整體,要一起發(fā)反序列化。然后再從person對象中去取出里面的對象。

慕森王
TA貢獻1777條經驗 獲得超3個贊
@龍行天涯: 沒有??!我只看到了一段object格式的json中包含了UserID、BatchID等key name以及包含多個object的兩個數(shù)組(CustomFields、Images)。
- 6 回答
- 0 關注
- 698 瀏覽
添加回答
舉報
0/150
提交
取消