[英]deserialization of string array in c#
我有一個形式的字符串數組
"education_history":
[{"name":"xxxxxx",
"concentrations":[],
"school_type":"College"},
{"name":"xxxxxxx",
"concentrations":[],
"school_type":"College"}]
我想反序列化值name和school_type 。 我已經反序列化了單個值類型的值,但是我遇到了字符串數組的問題。 另一個問題是,在我的請求中,我有多個數組要分解。
謝謝您的幫助
就像marcelo所說的那樣,使用json解析器是方法: http : //json.codeplex.com/
您必須使用差異類型而不是字符串。
具有固定大小或StringBuilder類型的字節數組應該可以工作。
字符串是可變長度的,這就是反序列化中出現問題的原因。
我認為我對Facebook JSON字符串反序列化的答案也適用於此問題
與其聲明很多小類,不如說是dynamic
。 這是動態json對象的代碼。 用法將是這樣的:
dynamic obj = JsonUtils.JsonObject.GetDynamicJsonObject(jsonString);
Console.WriteLine("{0} , {1}", obj.current_location.city, obj.current_location.state);
Console.WriteLine("EDUCATION");
foreach (var eduHist in obj.education_history)
{
Console.WriteLine("{0} , {1}", eduHist.name, eduHist.year);
}
Console.WriteLine("WORK");
foreach (var workHist in obj.work_history)
{
Console.WriteLine("{0} {1}-{2}", workHist.company_name, workHist.start_date, workHist.end_date);
}
假設您已經下課了:
public class EducationHistory
{
public string name { get; set; }
public string[] concentrations { get; set; }
public string school_type { get; set; }
}
正如@ aL3891所建議的那樣,下載Json.Net
並執行以下操作:
EducationHistory objVal = JsonConvert.DeserializeObject<EducationHistory>(yourJsonString);
您可以在上述類上實現Ienumerable以遍歷集合。 在這里查看問題,如何使用Json.NET反序列化。 希望對您有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.