c# - 这个json格式正确吗?

标签 c# javascript asp.net json

当我尝试解析它时,我有一个 json 数据,它返回错误语法不正确,请帮助我找到语法错​​误。

[{"isData":"Yes","Details":"[{"Id":"70","Name":"Test","FileName":"Uploaded","FileFormat":".mp4","FileType":"Video","FileDuration":"00:30:00  ","StartTime":"/Date(1372617000000)/","EndTime":"/Date(1372681771000)/","File":"2562013172331815635077778118152815.mp4"}]"}]

这是用于序列化数据的类,我正在使用 javascript 序列化器

public enum Data
{
    Yes,
    No
}

public class MessageResponse()
{
    public string isData { get; set; }
    public string Details { get; set; }
} 


      List<MessageResponse> response = new List<MessageResponse>();
string strJson="[{"Id":"70","Name":"Test","FileName":"Uploaded","FileFormat":".mp4","FileType":"Video","FileDuration":"00:30:00  ","StartTime":"/Date(1372617000000)/","EndTime":"/Date(1372681771000)/","File":"2562013172331815635077778118152815.mp4"}]";
 var newData = new MessageResponse
                            {
                                isData = Data.Yes.ToString(),
                                Details = strJson
                            };

                            response.Add(newData);

            var jsonSerialiser1 = new JavaScriptSerializer();
           string result = jsonSerialiser1.Serialize(response);

最佳答案

这是无效的 JSON。 Details 属性的格式不正确。您应该删除该值周围的引号。应该是这样的:

[
    {
        "isData": "Yes",
        "Details": [
            {
                "Id": "70",
                "Name": "Test",
                "FileName": "Uploaded",
                "FileFormat": ".mp4",
                "FileType": "Video",
                "FileDuration": "00:30:00  ",
                "StartTime": "/Date(1372617000000)/",
                "EndTime": "/Date(1372681771000)/",
                "File": "2562013172331815635077778118152815.mp4"
            }
        ]
    }
]

或者如果你希望Details成为一个字符串属性(代表JSON),这有点蹩脚,你应该正确地转义双引号:

[
    {
        "isData": "Yes",
        "Details": "[{\"Id\":\"70\",\"Name\":\"Test\",\"FileName\":\"Uploaded\",\"FileFormat\":\".mp4\",\"FileType\":\"Video\",\"FileDuration\":\"00: 30: 00\",\"StartTime\":\"/Date(1372617000000)/\",\"EndTime\":\"/Date(1372681771000)/\",\"File\":\"2562013172331815635077778118152815.mp4\"}]"
    }
]

您将能够将此结构映射到当前的对象模型。但我建议您使用第一种方法。

关于c# - 这个json格式正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17420468/

相关文章:

javascript - 如何使用 Angular 2 检测用户不活动?

javascript - 按钮的背景颜色不会通过 Tab 键选择而改变

c# - ASP.NET Web API破坏存储库/服务模式

c# - 我可以在 IIS 中禁用大量更改通知吗

c# - 类中应该包含什么方法

c# - 在 web.config 中配置的 UnityContainer

javascript - for循环中的回调函数?

html - 由于正在应用 Bootstrap 属性,无法使 gridview 的标题对齐中心

c# - 在 2 个 ASP.NET MVC 项目之间使用 ASP.NET Identity 进行单点登录

c# - 连接字符串 - Oracle