簡體   English   中英

在C#中字符串數組的反序列化

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM