登录 注册
当前位置:主页 > 资源下载 > 9 > C#扩展版的JSONBuilder

C#扩展版的JSONBuilder

  • 更新:2024-06-22 14:22:38
  • 大小:55KB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:C# - 后端
  • 格式:ZIP

资源介绍

比较简单的C#版JSONBuilder:(.net 2.0) - 只有两个文件:JSONBuilder.cs , JSONBuilderDelegates.cs - 不用考虑对象嵌套输出格式的匹配问题 - 自动字符串转义 - 支持常见数据类型、以及常用的数据结构如: 任意数组,ArrayList,List ,Hashtable,Dictionary 等 - 支持任意扩展,通过注册自定义类型的转换方法(参看JSONBuilderTest.cs 和 JSONBuilderDelegates.cs)可支持任意类型的json字符串转换 - 支持自定义的包含 public string toJSON() 的对象的输出(忽略大小写) - 带有测试的VS2005完整项目 - 可任意使用修改(只要包含原作者信息) //转换回调函数接口 --> JSONBuilder.cs public delegate string ToJSONDelegate(object value, bool useSingleQuote); //-->JSONBuilderTest.cs 比如: //demo custom class public class CustomClass { public string name = "Hu Changwei"; public string nickName = "koqiui"; public string email = "koqiui@163.com"; public string gender = "male"; public bool married = true; public DateTime birthDate = new DateTime(1978, 5, 21); } //demo custom json convertor public static string fromCustomClass(object value, bool useSingleQuote) { if (value == null) { return JSONBuilder.NullStr; } if (value.GetType() == typeof(CustomClass)) { CustomClass objValue = value as CustomClass; JSONBuilder jb = new JSONBuilder(useSingleQuote); jb.startObject(); // jb.add("Author", objValue.name); jb.add("nickname", objValue.nickName); jb.add("email", objValue.email); jb.add("married", objValue.married); jb.add("birthdate", objValue.birthDate); // jb.endObject(); return jb.toJSON(); } return JSONBuilder.NullStr; } [Test] public void test_customConvertor() { JSONBuilder.setJSONConvertor(typeof(CustomClass), new ToJSONDelegate(fromCustomClass)); JSONBuilder jb = new JSONBuilder(); jb.addValue(new CustomClass()); Console.WriteLine(jb.toJSON()); }