如何将map反序列化为不同的属性名称

时间:2016-10-20 08:10:27

标签: serialization json.net

我的JSON字符串是这样的。

func tableView(_ tableView:UITableView, numberOfRowsInSection section:Int) -> Int {
      return news.count
}

如何定义一个可以被这三个JSON字符串反序列化用于对象的类?

1 个答案:

答案 0 :(得分:0)

假设这三个是您唯一可能的JSON字符串,您需要创建三个根类。您可以使用某些tools执行此操作,或者只需复制每个JSON字符串并通过转到Edit>粘贴它们即可。选择性粘贴>将JSON粘贴为Visual Studio中的类。例如,对应于jsonstring2的类将如下所示:

public class Rootobject
{
    public Person[] data { get; set; }
}

public class Person
{
    public string name { get; set; }
    public string address { get; set; }
}

然后你需要检测如下“数据”的类型:

JObject jo = JObject.Parse(jsonstring2);
string type = jo["data"].GetType().Name;

在这种情况下将是JArray(另外两个是JValue和JObject)。然后,您可以使用switch语句将字符串反序列化为正确的类。