Я пытаюсь десериализацией файла, содержащего набор данных объектов JSON, не разделенных запятымиКак десериализация файла с своеобразным набором данными из JSON объекты
{
"passages": [
{
"is_selected": 1,
"url": "http://someUrl.com",
"passage_text": "someTextHere"
},
{
"is_selected": 0,
"url": "http://someUrl.com",
"passage_text": "someTextHere""
},
],
"query_id": 9749,
"answers": ["Here is the answer"],
"query_type": "description",
"query": "Here is my query"
}
{
"passages": [
{
"is_selected": 0,
"url": "http://someAnotherUrl.com",
"passage_text": "someAnotherTextHere"
},
{
"is_selected": 1,
"url": "http://someAnotherUrl.com",
"passage_text": "someAnotherTextHere""
},
],
"query_id": 0564,
"answers": ["Here is the another answer"],
"query_type": "another description",
"query": "Here is my another query"
}
Я пытаюсь использовать этот код с Newtonsoft.JSON десериализации, но она возвращает исключение
«необработанное исключение типа„Newtonsoft.Json.JsonSerializationException“произошло в Newtonsoft.Json.dll
Дополнительная информация: не может десериализации текущий объект JSON (например, { "name": "value"}) i nto type 'System.Collections.Generic.List`1 [JsonParser.DataSet]', потому что для этого типа требуется массив JSON (например, [1,2,3]), чтобы правильно десериализации.»
public class DataSet
{
public List<Passage> passages { get; set; }
public int query_id { get; set; }
public List<string> answers { get; set; }
public string query_type { get; set; }
public string query { get; set; }
public int Count { get; internal set; }
}
public class Passage
{
public int is_selected { get; set; }
public Uri url { get; set; }
public string passage_text { get; set; }
}
class Program
{
public static string jsonFileLocation = @"C:\my.json";
static void Main(string[] args)
{
using (StreamReader file = File.OpenText(jsonFileLocation))
{
JsonSerializer serializer = new JsonSerializer();
List<DataSet> data = (List<DataSet>)serializer.Deserialize(file, typeof(List<DataSet>));
}
}
}
Я не думаю, что это хорошая идея, чтобы поставить запятые и скобки вручную, чтобы привести файл в формате JSON, потому что этот файл содержит несколько тысяч записей. У вас есть идеи, как разбирать и десериализовать этот файл?
Ваш json недействителен, поэтому вам нужно как-то его исправить (вручную, регулярное выражение и т. Д.), Если вы хотите использовать json serializer ... –
Я уверен, что единственный вариант - исправить файл. Это или забудьте про разбор его с помощью любого анализатора JSON. –