Для начала вам нужно проверить ваш JSON.
Я использовал этот сайт для его проверки, который дал довольно приличное сообщение об ошибке, где ваша проблема
https://jsonlint.com/
Error: Parse error on line 20:
...": [{ "Content": "0901hrs : NEL "
----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'
Это должно быть вашей отправной точкой для исправления.
Я использовал валидатор и немного исследований и обнаружил, что ваша проблема заключается в следующем
"Content": "0901hrs: NEL",
"CreatedDate": "2018-03-16 09:01:53"
ВАШ jsonпохоже, неправильно отформатирован ", добавив эту отсортированную проверку.
Оттуда я бы также порекомендовал использовать объекты в c # для чтения этого файла
для создания этих объектов id, предлагающих использовать этот сайт
http://json2csharp.com/
это преобразует любой рабочий json в объекты c #, которые вы затем можете прочитать в
после устранения проблемы, вот как это будет выглядеть, если у вас есть объекты
public class AffectedSegment
{
public string Line { get; set; }
public string Direction { get; set; }
public string Stations { get; set; }
public string MRTShuttleDirection { get; set; }
}
public class Message
{
public string Content { get; set; }
public string CreatedDate { get; set; }
}
public class Value
{
public int Status { get; set; }
public List<AffectedSegment> AffectedSegments { get; set; }
public List<Message> Message { get; set; }
}
public class RootObject
{
public Value value { get; set; }
}
Отсюда вы сможете прочитать json в rootobject
StreamReader sr = new StreamReader(Server.MapPath("TrainServiceAlerts.json"));
string json = sr.ReadToEnd();
var table = JsonConvert.DeserializeObject<RootObject>(json);
, а затем привязать элемент к сетке, просто сделав это
MyGridView.DataSource = RootObject
MyGridView.DataBind()