C# Java 解析json数据(简单)

    做了个特别简单的android客户端和c#服务器用json数据交互的程序,不多说了,直接步入正题

1.android端生成一条json数据

	public String getJsonObject(String username, String password) {
		try {
			JSONObject jsonObject = new JSONObject();
			jsonObject.put("username", username);
			jsonObject.put("password", password);
			return jsonObject.toString();
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
}
2.c#服务器解析它,解析的时候需要根据发来的消息,自定义一个类

        class User
        {
            public string username { get; set; }

            public string password { get; set; }

        }
然后引用using System.Web.Script.Serialization;这个命名控件的JavaScriptSerializer类来解析json数据:

  User user = js.Deserialize<User>(content);
然后user.username就是用户名,user.password就是密码

3.c#服务器发送一条简单的json数据给客户端:

    public string getJsonString(string message)
        {
            Dictionary<string, string> dic = new Dictionary<string, string>();
            dic.Add("响应信息", message);
            StringBuilder sb = new StringBuilder();
            js.Serialize(dic, sb);
            return sb.ToString();
        }

4.android解析它:

	public String jsonToString(String message) {
		JSONObject object;
		try {
			object = new JSONObject(message);
			message = (String) object.get("响应信息");
			return message;
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

当然这些都是最简单的,都是调用一下类库就好了,如果我碰到难的,会继续更改我的博文,未完待续...






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
比较简单JSONBuilder:(.net 2.0, jdk1.5) - 只有两个文件:JSONBuilder(.cs,.java) , JSONBuilderDelegates(.cs,.java) - 不用考虑对象嵌套输出格式的匹配问题 - 自动字符串转义 - 支持常见数据类型、以及常用的数据结构如: 任意数组(Array),IMap,IList,IEmutable等 - 支持任意扩展,通过注册自定义类型的转换方法(参看JSONBuilderTest(.cs,.java) 和 JSONBuilderDelegates(.cs,.java))可支持任意类型的json字符串转换 - 支持自定义的包含 public string toJSON() 的对象的输出(忽略大小写) - 带有测试的VS2005和Eclispe完整项目 - 版权:可任意使用、分发、改良(只要包含原作者信息) // 转换回调函数接口 --> JSONBuilderDelegates.cs public delegate string JSONBuilderDelegates(object value, bool useSingleQuote); 或 --> JSONBuilderDelegates.java public static String JSONBuilderDelegates(Object value, boolean useSingleQuote); //-->JSONBuilderTest.cs (JSONBuilderTest.java) 比如 .net: //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()); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值