c语言string类型转换为json,关于String Json 与其他类型数据转换的总结:

一:关于自己遇到的坑:

跨域请求获取到 String Json(GSON处理) 数据后处理转换为实体类进行存储:

跨域 return Gson.toJson(map);

通过Http等方法获取请求结果为 StringBuffer (此过程不加赘述,自行baidu),

处理 结果 buffer(Test测试):

beb1920c8c1ffc5f0900ea12a5dcbeb1.png

Test中List 数据格式:

[

{"Filesystem":"/dev/mapper/vg_gsbwapp1-lv_root","Size":"485G","Used":"60G","Avail":"401G","UseP":"13%","Mountedon":"/","IPID":1},

{"Filesystem":"tmpfs","Size":"7.7G","Used":"72K","Avail":"7.7G","UseP":"1%","Mountedon":"/dev/shm","IPID":1},

{"Filesystem":"/dev/sda2","Size":"485M","Used":"39M","Avail":"421M","UseP":"9%","Mountedon":"/boot","IPID":1},

{"Filesystem":"/dev/sda1","Size":"200M","Used":"260K","Avail":"200M","UseP":"1%","Mountedon":"/boot/efi","IPID":1},

{"Filesystem":"/dev/mapper/vg_gsbwapp1-lv_home","Size":"49G","Used":"2.6G","Avail":"44G","UseP":"6%","Mountedon":"/home","IPID":1}

]

注意:

String retule = gson.toJson(disk_re.get(disk_i));

坑: String retule = disk_re.get(disk_i).toString(); 此方法转换String类型之后字符串内部结构发生变化,使用 Gson.fromJson(String json,T)时出现异常

.toString() 之后数据格式变为:

{Filesystem=/dev/mapper/vg_gsbwapp1-lv_root,Size=485G,Used=60G,Avail=401G,UseP=13%,Mountedon=/,IPID=1.0}

二: 总结Gson转换用法

import com.google.gson.Gson;

import com.google.gson.reflect.TypeToken;

import java.util.Date;

import java.util.List;

import java.util.Map;

public class GsonUtil {

private static Gson gson = null;

static {

gson = new Gson();

}

private GsonUtil() {

}

/**

* 转成json

*/

public static String GsonString(Object object) {

String gsonString = null;

if (gson != null) {

gsonString = gson.toJson(object);

}

return gsonString;

}

/**

* 转成bean

*/

public static T GsonToBean(String gsonString, Class cls) {

T t = null;

if (gson != null) {

t = gson.fromJson(gsonString, cls);

}

return t;

}

/**

* 转成list

*/

public static List GsonToList(String gsonString, Class cls) {

List list = null;

if (gson != null) {

list = gson.fromJson(gsonString, new TypeToken>() {

}.getType());

}

return list;

}

/**

* 转成list中有map的

*/

public static List> GsonToListMaps(String gsonString) {

List> list = null;

if (gson != null) {

list = gson.fromJson(gsonString,

new TypeToken>>() {

}.getType());

}

return list;

}

/**

* 转成map的

*/

public static Map GsonToMaps(String gsonString) {

Map map = null;

if (gson != null) {

map = gson.fromJson(gsonString, new TypeToken>() {

}.getType());

}

return map;

}

/*

Object 转map

*/

static Object ObjectToMaps(Object object) {

if (object == null) {

return null;

}

if (object instanceof Integer || object instanceof String || object instanceof Double ||

object instanceof Float || object instanceof Long || object instanceof Boolean ||

object instanceof Date || object instanceof List) {

return object;

}

/*if (object instanceof HibernateProxy) {

System.out.println("object instanceof HibernateProxy");

}

Gson gson = new GsonBuilder()

.registerTypeAdapterFactory(HibernateProxyTypeAdapter.FACTORY)

.create();*/

Map map = null;

map = gson.fromJson(gson.toJson(object), new TypeToken>() {

}.getType());

return map;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值