json字符串转换成user对象。

原代码如下:

 1 DefaultHttpClient httpClient = new DefaultHttpClient();
 2         HttpPost method = new HttpPost("http://localhost:8080/tu-login/tuloginMethod");
 3
 4         JSONObject jsonParam = new JSONObject();
 5         jsonParam.put("phone", phone);
 6         jsonParam.put("password", password);
 7         jsonParam.put("requrl", requrl);
 8
 9         StringEntity entity = new StringEntity(jsonParam.toString(), "utf-8");
10         entity.setContentEncoding("UTF-8");
11         entity.setContentType("application/json");
12         method.setEntity(entity);
13
14         HttpResponse resGet;
15         try {
16
17             resGet = httpClient.execute(method);
18             String resData = EntityUtils.toString(resGet.getEntity(),"utf-8");
19             System.out.println(resData);
20
21             //JSONObject
22             JSONObject resJSON = JSONObject.fromObject(resData);
23             System.out.println("resJSON转化resData是:"+resJSON);
24             Object userjson = resJSON.get("user");
25             System.out.println("JSONObject转化的user对象是:"+userjson);
26             String userString = userjson.toString();
27             //Gson
28             Gson gson = new Gson();
29             String jsonString = gson.toJson(resData);
30             System.out.println("jsonString转化resData是:"+jsonString);
31             User user = gson.fromJson((String) userString, User.class);
32             System.out.println("user.getName()是:"+user.getName());
33             /*
34              *Gson gson = new Gson(); // Or use new GsonBuilder().create();
35              MyType target = new MyType();
36              String json = gson.toJson(target); // serializes target to Json
37              MyType target2 = gson.fromJson(json, MyType.class);
38              */
39
40
41             //JsonObject
42             JsonObject jsonObj = new JsonObject();
43             jsonObj.getAsJsonObject(resData);
44             System.out.println("jsonObj转化resData是:"+jsonObj);
45
46
47
48
49             /*if(null != resJson.get("user")){
50                 System.out.println("user在tu-login 是null");
51                 User user = (User)resJson.get("user");
52                 request.getSession().setAttribute("user", user);
53             }*/
54             //JsonNull判断空值
55             if("A00000".equals(resJSON.get("code"))){
56                 String token = (String)resJSON.get("token");
57                 securityUtil.addCookieToken(request,response,token,user.getId());
58             }
59
60             //cookie   --- token,requrl
61
62             //securityUtil.addCookie(request,response,requrl);
63
64             if ( !"A00000".equals(resJSON.get("code"))) {
65                 result = resJSON.get("data");
66             }else{
67             result = securityUtil.getReqURL(request,response);
68             }
69
70             request.getSession().setAttribute("", "");
71             resultCode = resJSON.get("code");

需求,解析返回的json字符串,把json转换成java对象。

在网上看到了很多,都是写死的,先从json中获取,然后再用set方法,放到对象中,我感觉这种方法不太好,就写了这种方法,参考了很多资料,谢谢各位大大。

json如下:

{"code":"A00000","data":null,"user":{"id":9,"name":"隔壁老王","email":"123","password":"4297F44B13955235245B2497399D7A93","deleted":false,"birthTime":1436371200000,"createTime":2015,"phone":"135135135","address":"123","perms":"cmsMng,cmsEdit,fileServerMng,fileServerAppMng,","tel":"123","permsName":null,"gender":0,"sex":"1","birth":null},"token":"f909d45e-1ff9-4f69-9cc0-503e5dde3025"}

code是返回的状态码,data是信息,user则是另一个json字符串,需要把它解析成user对象。token是需要保存的信息。

我这里,解析json用的是这个。net.sf.json.JSONObject,来解析json字符串。

并获得其中的user值。

Object userjson = resJSON.get("user");
            System.out.println("JSONObject转化的user对象是:"+userjson);
            String userString = userjson.toString();

输出:

JSONObject转化的user对象是:{"id":9,"name":"隔壁老王","email":"123","password":"4297F44B13955235245B2497399D7A93","deleted":false,"birthTime":1436371200000,"createTime":2015,"phone":"135135135","address":"123","perms":"cmsMng,cmsEdit,fileServerMng,fileServerAppMng,","tel":"123","permsName":null,"gender":0,"sex":"1","birth":null}

然后再用:com.google.gson.Gson来将json转成user对象。

Gson gson = new Gson();
            User user = gson.fromJson((String) userString, User.class);

这样,就可以了。

但是我有点地方不太明白。

我在用:com.google.gson.JsonObject这个的时候,却不能解析到值:

JsonObject jsonObj = new JsonObject();
            jsonObj.getAsJsonObject(resData);
            System.out.println("jsonObj转化resData是:"+jsonObj);

jsonObj转化resData是:{}

请各位过路的大大指教。

同求,GSON,JSONObject,JsonObject,这三者的区别,我QQ:1286238812,欢迎各位高手骚扰。

时间: 2024-10-03 21:41:16

json字符串转换成user对象。的相关文章

JSON字符串转换成Map对象

页面向后台action传递一个json字符串,需要将json字符串转换成Map对象 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import net.sf.json.JSONObject; public Map<String, String> toMap(Object object) { Map<String, String> data = new HashMap<Str

json字符串转换成json对象

Json字符与Json对象的相互转换方式有很多,接下来将为大家一一介绍下,感兴趣的朋友可以参考下哈,希望可以帮助到你 1>jQuery插件支持的转换方式: 代码如下: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器: 代码如下: JSON.parse(jsonstr); //可以将json字符

json字符串转换成对象,对象转换成json字符串

方法一: 程序集:  System.Web.Extensions; 命名空间:System.Web.Script.Serialization; 最重要的类:JavaScriptSerializer //实例化 JavaScriptSerializer js = new JavaScriptSerializer(); js.Serialize();//将对象转换成json字符串:    序列号 js.Deserialize();//将json字符串转换成对象:  反序列化 方法二: 程序集:New

json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值

主要内容: 一.json相关概念 二.json字符串转换成json对象 (字符串-->JSON对象) 三.json对象转换成字符串(json对象-->字符串) 四.将值转换成字符串(值-->字符串) 五.字符串转成值(字符串-->值) 同步的交流学习社区:http://www.mwcxs.top/page/425.html 一.json相关概念 json,全称为javascript object notation,是一种轻量级的数据交互格式.采用完全独立于语言的文本格式,是一种理想

js中json字符串转成js对象

json字符串转成js对象我所知的方法有2种: //json字符串转换成json对象 var str_json = "{name:'liuchuan'}"; //json字符串 //1. 函数对象构造定义 var obj1 = new Function("return " + str_json)(); console.log(obj1.name); //2. eval函数 var obj2 = eval("(" + str_json + &quo

使用jackson来进行数组格式的json字符串转换成List。

有一个字符串如下.如下,也是通过jackson把list转换成的json字符串,我想把它转过来,看网上的内容都不尽人如意,都是片断的内容.估计只有写的知道怎么使用,所以就直接看了jackson的官网,知道了使用方法. 用的类主要是 import org.codehaus.jackson.type.TypeReference; import org.codehaus.jackson.map.ObjectMapper; 要转的字符串如下: [{"id":"36CD0224C1ED

c++ json字符串转换成map管理

在cocos2dx for lua中,我们经常通过lua的table传入c++使用,然后早c++层操作数据. 实现步骤大致如下: table->string->c++层->通过rapidjson解析->存放在map中管理 在lua中,转换table大致如下 local tbl = {} tbl["fang"] = 1 tbl["jian"] = 1.4 tbl["heng"] = true tbl["fjh&qu

IOS 把格式化的JSON字符串转换成字典

[html] view plaincopyprint? /*! * @brief 把格式化的JSON格式的字符串转换成字典 * @param jsonString JSON格式的字符串 * @return 返回字典 */ + (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString { if (jsonString == nil) { return nil; } NSData *jsonData = [jsonString d

【深入JAVA】将Json字符串转换成Map/List

在阅读的过程中有任何问题,欢迎一起交流 邮箱:[email protected] QQ:1494713801 Java代码 package jsonToMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import net.sf.json.JSONArray; import net.sf.json.JSONObject; /** * 说明 json字符串 转成 Map/List * @aut