У меня есть файл Json, который можно использовать для десериализации в среду Entity.Для упрощения мы можем предположить, что Json выглядит так:
{
"stat": "val0",
"results": [
{
"datasets": [
"val1",
"val2"
],
"head": "val3"
},
{
"datasets": [
"val4",
"val5"
],
"head": "val6"
}
]
}
А мои классы сущностей вроде
[Serializable]
public class Root
{
[Key]
public int Id { get; set; }
public int stat { get; set; }
public List<Result> results { get; set; }
}
[Serializable]
public class Result
{
[Key]
public int Id { get; set; }
public List<String> _strings { get; set; }
public List<string> Strings
{
get { return _strings; }
set { _strings = value; }
}
[Required]
public string datasets
{
get { return String.Join(",", _strings); }
set { _strings = value.Split(',').ToList(); }
}
public string head{ get; set; }
public virtual root { get; set; }
}
Я знаю, что Entity Framework не поддерживает примитивные типы, и я знаю причины проблем из полей моих наборов данных,что я нашел этот способ решить проблему десериализации массива строк здесь .Я пытался
URL = "http://...";//Restful webservice address
WebClient client = new WebClient();
String JSON= client.DownloadString(URL);
var dsobj = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<RootObject>(json);
Но я получил
System.InvalidOperationException
Тогда я решил использовать Newtonsoft
URL = "http://...";//Restful webservice address
WebClient client = new WebClient();
String JSON= client.DownloadString(URL);
var dsobj = JsonConvert.DeserializeObject<Root>(json);
Затем я получил эту ошибку
Newtonsoft.Json.JsonReaderException: 'При анализе значения обнаружен неожиданный символ: [.Path 'results [0] .senses [0] .definition', строка 1, позиция ...
Я нашел это , но я не могу понять это.
Как можно исправить эти исей.Любая помощь приветствуется.