接口返回的数据格式一般有两种,一个XML格式,一种是Json格式。目前Json格式比较多人使用,也比较方便易用。JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。
Web前端交互XML格式与Json格式的优缺点:
XML
使 用XML作为传输格式的优势:
1. 格式统一, 符合标准
2. 容易与其他系统进行远程交互, 数据共享比较方便
缺点:
1. XML文件格式文件庞大, 格式复杂, 传输占用带宽
2. 服务器端和客户端都需要花费大量代码来解析XML, 不论服务器端和客户端代码变的异常复杂和不容易维护
3. 客户端不同浏览器之间解析XML的方式不一致, 需要重复编写很多代码
4. 服务器端和客户端解析XML花费资源和时间
[ JSON ]
优点:
1. 数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小
2. 易于解析这种语言, 客户端JavaScript可以简单的通过eval()进行JSON数据的读取
3. 支持多种语言, 包括ActionScript, C, C#, ColdFusion, Java,JavaScript, Perl, PHP, python, Ruby等语言服务器端语言, 便于服务器端的解析
4. 因为JSON格式能够直接为服务器端代码使用, 大大简化了服务器端和客户端的代码开发量, 但是完成的任务不变, 且易于维护
Jayrock
Jayrock是一个LGPL的开源的软件,实现了JSON和JSON-RPC,支持微软ASP.NET框架。
引用Jayrock.dll后,可在C#里可以将实体类转换为Json格式的字符串,也可以将Json字符串转换为实体类。
使用:
User实体类:
public class User
{
public int ID { get; set; }
public string UserName { get; set; }
public string Pass { get; set; }
public DateTime AddDate { get; set; }
}
将实体类转为为Json格式字符串:
User user = new User() { ID =1, UserName="amao", Pass="mypass", AddDate=DateTime.Now};
Jayrock.Json.JsonTextWriter writer = new Jayrock.Json.JsonTextWriter();
Jayrock.Json.Conversion.JsonConvert.Export(user, writer);
string result=writer.ToString();
Result:
{"iD":1,"userName":"amao","pass":"mypass","addDate":"2017-08-06T19:21:45.5598724+08:00"}
将Json格式字符串转为实体类:
string str = "{\"iD\":1,\"userName\":\"amao\",\"pass\":\"mypass\",\"addDate\":\"2017-08-06T19:21:45.5598724+08:00\"}";
User user = (User)Jayrock.Json.Conversion.JsonConvert.Import(typeof(User), str);//json字符串转对象
有时候日期格式的字段会因为格式不对,报“
{"字符串“2017 - 08 - 06T22: 58:57.2977026 + 08:00”不是有效的 AllXsd 值。"}”。这是因为里面有空格而导致转换失败。