C# 这个json格式正确吗?
我有一个json数据,当我试图解析它时返回错误语法不正确请帮助我找到语法错误C# 这个json格式正确吗?,c#,javascript,asp.net,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)/
[{"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);
公共枚举数据
{
对
不
}
公共类MessageResponse()
{
公共字符串isData{get;set;}
公共字符串详细信息{get;set;}
}
列表响应=新列表();
字符串strJson=“[{”Id:“70”,“Name:“Test”,“FileName:“upload”,“FileFormat:“.mp4”,“FileType:“Video”,“FileDuration:“00:30:00”,“StartTime:”/Date(1372617000000)/”,“EndTime:“/Date(1372681771000)/”,“File:“25620013172331815635077778118152815.mp4”];
var newData=newmessageresponse
{
isData=Data.Yes.ToString(),
详细信息=strJson
};
响应。添加(新数据);
var jsonSerialiser1=新的JavaScriptSerializer();
string result=jsonSerialiser1.Serialize(响应);
这是无效的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"
}
]
}
]
或者,如果希望详细信息是一个字符串属性(表示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\"}]"
}
]
通过此结构,您将能够映射到当前对象模型。但是我建议您使用第一种方法。这是无效的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"
}
]
}
]
或者,如果希望详细信息是一个字符串属性(表示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\"}]"
}
]
通过此结构,您将能够映射到当前对象模型。但我建议您使用第一种方法。从详细信息数据中删除:
[{
"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"
}]
}]
从详细信息数据中删除“详细信息:
[{
"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"
}]
}]
详细信息应为类(即用户定义的类)类型,并应包含所有属性
public class Details
{ public int Id {get; set;} ... }
详细信息应为类(即用户定义的类)类型,并应包含所有属性
public class Details
{ public int Id {get; set;} ... }
首先,您的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"
}
]
}
]
其次,您的课程可以改进为:
public class MessageResponse
{
public string isData { get; set; }
public Details Details { get; set; }
}
public class Details
{
public int Id { get; set; }
public string Name { get; set; }
public string FileName { get; set; }
public string FileFormat { get; set; }
public string FileType { get; set; }
public string FileDuration { get; set; }
public string StartTime { get; set; }
public string EndTime { get; set; }
public string File { get; set; }
}
您可能需要设置正确的数据类型,但对于诸如开始时间等内容。首先,您的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"
}
]
}
]
其次,您的课程可以改进为:
public class MessageResponse
{
public string isData { get; set; }
public Details Details { get; set; }
}
public class Details
{
public int Id { get; set; }
public string Name { get; set; }
public string FileName { get; set; }
public string FileFormat { get; set; }
public string FileType { get; set; }
public string FileDuration { get; set; }
public string StartTime { get; set; }
public string EndTime { get; set; }
public string File { get; set; }
}
您可能希望为开始时间等设置正确的数据类型。语法错误在这里:
“[{”Id
。语法错误在这里:“[{”Id
。