json格式的数据可以转换成普通的json字符串格式吗

我是温浩然:
在网上看了好多,都是先获取json对象的元素,然后用java对象的set方法来转换的,感觉这中写法不好,所以,根据网上各位大大的文章,写了这个方法,如果有写的不对,不好的地方,请指出。
如有得罪,请见谅。
@RequestMapping(value = "/tulogin")
public void login(HttpServletRequest request,
HttpServletResponse response,@RequestBody Map&String, Object& map){
Object resultCode = ResultCode.SUCCEED;
Object result =
securityUtil.requrl(request,response);
String phone = (String) map.get("phone");
String password = (String) map.get("password");
String requrl = request.getRequestURI();
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost method = new HttpPost("http://localhost:8080/tu-login/tuloginMethod");
JSONObject jsonParam = new JSONObject();
jsonParam.put("phone", phone);
jsonParam.put("password", password);
jsonParam.put("requrl", requrl);
StringEntity entity = new StringEntity(jsonParam.toString(), "utf-8");
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
method.setEntity(entity);
HttpResponse resG
//通过DefaultHttpClient 来获得返回的参数(值)
resGet = httpClient.execute(method);
//将返回值设置编码格式,(避免乱码)
String resData = EntityUtils.toString(resGet.getEntity(),"utf-8");
System.out.println("resData"+resData);
//通过net.sf.json.JSONObject 来解析字符串
JSONObject resJSON = JSONObject.fromObject(resData);
System.out.println("resJSON"+resJSON);
//把json中的user对象获取,并强转。
Object userjson = resJSON.get("user");
String userString = userjson.toString();
//通过com.google.gson.Gson 来处理json 类型的user对象。
Gson gson = new Gson();
User user = gson.fromJson((String) userString, User.class);
System.out.println("user对象:"+user.getName());
//user就是转换后的对象。
//在这里,我对com.google.gson.JsonObject有点疑问,为啥这个不能解析返回的字符串呢?
//这个类有什么作用?
JsonObject jsonObj = new JsonObject();
jsonObj.getAsJsonObject(resData);
System.out.println("jsonObj转化resData是:"+jsonObj);
if("A00000".equals(resJSON.get("code"))){
String token = (String)resJSON.get("token");
securityUtil.addCookieToken(request,response,token,user.getId());
if ( !"A00000".equals(resJSON.get("code"))) {
result = resJSON.get("data");
result = securityUtil.getReqURL(request,response);
request.getSession().setAttribute("", "");
resultCode = resJSON.get("code");
} catch (ClassCastException e) {
logger.error(e.getMessage());
resultCode = ResultCode.INTERNAL_ERROR;
result = e.getMessage();
}catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
setResponse(response, resultCode, result);
我把整个方法贴上来了。有些没用,有用的都做注释了。
其中,输出的结果如下:
resData{"code":"A00000","data":null,"user":{"id":9,"name":"隔壁老王","email":"123","password":"","deleted":false,"birthTime":0,"createTime":2015,"phone":"","address":"123","perms":"cmsMng,cmsEdit,fileServerMng,fileServerAppMng,","tel":"123","permsName":null,"gender":0,"sex":"1","birth":null},"token":"ff0b328e-68a0-42af-8ed3-cef646b1f697"}
**********
这里可以看出,resJSON中,user也是一个json对象。所以,我才用JSONObject先获取user,再将user来转换成GSON。
resJSON{"code":"A00000","data":null,"user":{"id":9,"name":"隔壁老王","email":"123","password":"","deleted":false,"birthTime":0,"createTime":2015,"phone":"","address":"123","perms":"cmsMng,cmsEdit,fileServerMng,fileServerAppMng,","tel":"123","permsName":null,"gender":0,"sex":"1","birth":null},"token":"ff0b328e-68a0-42af-8ed3-cef646b1f697"}
**********
user对象:隔壁老王
×××××××××
下面是我不明白的,JsonObject为什么为空,我不太清楚。
jsonObj转化resData是:{}
还有就是,关于,GSON ,JSONObject ,JsonObject,三者的区别,还是不太明白。希望各位大大指教。
各位的json如果直接就可以解析成java对象的格式,直接用GSON来解析就行了,没有必要跟我先用JSONObject这样麻烦。
版权声明:本文为博主原创文章,未经博主允许不得转载。
我是温浩然
浏览: 7703 次
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'JAVA数据格式转换成JSON_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
JAVA数据格式转换成JSON
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
还剩6页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢&>&数据转成json格式数据
数据转成json格式数据
上传大小:197KB
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。 Json转换利器Gson之实例一-简单对象转化和带泛型的List转化
综合评分:0
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
综合评分:
积分/C币:4
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
数据转成json格式数据
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
数据转成json格式数据&& & 在最近的工作中,使用到JSON进行数据的传递,特别是从前端传递到后台,前台可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,后台使用request进行接收。有时传递了几个数值,还好接收。但是如果传递一个json数组,这样后台接受的时候Request多个很麻烦,此时要按照类的格式或者 集合的形式进行传递。例如下面的例子:
前台按类的格式传递JSON对象:
var jsonUserInfo = "{\"TUserName\":\"" + userName + "\",\"TInterest\":\"" + interest + "\",\"TSex\":\"" + sex + "\",\"TCity\":\"" + city + "\",\"TDetail\":\"" + detail + "\"}";如拼出的jsonUserInfo 无转义符号,需要var jsonArrayFinal = JSON.stringify(jsonArray);进行转换后再传递
&&&&&&&&&&&&&&&&&&&&{&&
&&&&&&&&&&&&&&&&&&&&&&&&type:&"post",&&
&&&&&&&&&&&&&&&&&&&&&&&&url:&"ReceiveHandler1.ashx",&&
&&&&&&&&&&&&&&&&&&&&&&&&data:&{&userInfo:&jsonUserInfo,&flag:&"123456",&key:&"654321"&},&&
&&&&&&&&&&&&&&&&&&&&&&&&dataType:&"JSON",&&
&&&&&&&&&&&&&&&&&&&&&&&&success:&function(data)&{&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$("#divShow").html(data);&&
&&&&&&&&&&&&&&&&&&&&&&&&}&&
& &这是简单的传递,如果传递多个数组,前台传递多个类格式的JSON数组,也就是集合类型。后台处理就比较麻烦,例如:
[{"name":"a"},{"name","b"},{"name","c"}],则无法传递,此时必须使用JSON.stringify将数组对象转换成字符串,再进行AJAX传递即可。
例如:两个参数变量,一个是字符串,一个是数组。
var a={"name":"tom","sex":"男","age":"24"};&var b='{"name":"Mike","sex":"女","age":"29"}';
在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法。
JSON.stringify(obj)将JSON转为字符串。JSON.parse(string)将字符串转为JSON格式;
在转换成一般使用了两种方式,一个是JSON.stringify(obj),转换成字符串,JSON.parse(string)将字符串转为JSON格式,不过一个一个json.js的支持。不过在许多的浏览器现在都支持,可以直接使用。
上面的转换可以这么写:
var&a={"name":"tom","sex":"男","age":"24"};&&&
var&b='{"name":"Mike","sex":"女","age":"29"}';&&&
var&aToStr=JSON.stringify(a);&&&
var&bToObj=JSON.parse(b);&&&
alert(typeof(aToStr));&&//string&&&
alert(typeof(bToObj));//object&&
JSON.stringify()&&
ie8(兼容模式),ie7和ie6没有JSON对象,不过提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;你可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。
ie8(兼容模式),ie7和ie6可以使用eval()将字符串转为JSON对象,
var c='{"name":"Mike","sex":"女","age":"29"}';&var cToObj=eval("("+c+")");&alert(typeof(cToObj));
中也有将字符串转为JSON格式的方法jQuery.parseJSON( json ),接受一个标准格式的 JSON 字符串,并返回解析后的&&(JSON)对象。当然如果有兴趣可以自己封装一个jQuery扩展,jQuery.stringifyJSON(obj)将JSON转为字符串。
这只是一种方法,还有几种方法,大家可以看一下:
1&jQuery插件支持的转换方式:&$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象&2&浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:&JSON.parse(jsonstr); //可以将json字符串转换成json对象&JSON.stringify(jsonobj); //可以将json对象转换成json对符串&注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。&3&Javascript支持的转换方式:&eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号&注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。&4&JSON官方的转换方式:&http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;&可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。
阅读(...) 评论()

我要回帖

更多关于 json格式的字符串 的文章

 

随机推荐