string转map java_string 转 java对象、转map的方式

1、使用fastJson 将String转 map:

String out;

Object succesResponse = JSON.parse(out);    //先转换成Object

Map map = (Map)succesResponse;         //Object强转换为Map

2、String 转 java 对象

fastjson 应用 string字符串转换成java对象或者对象数组

代码如下

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONObject;

import com.alibaba.fastjson.TypeReference;

public class TestFastJson {

public static void main(String[] args) {

//  转换成对象

String jsonstring = "{\"a\":51,\"b\":0}";

Usa u1 = JSON.parseObject(jsonstring, new TypeReference(){});

Usa u2 = JSON.parseObject(jsonstring,Usa.class);

// 转换成对象数组

String jsonstring2 = "[{\"a\":51,\"b\":0}]";

Usa[] usa2 = JSON.parseObject(jsonstring2, new TypeReference(){});

List list = Arrays.asList(usa2);

// 转换成ArrayList

ArrayList list2 = JSON.parseObject(jsonstring2, new TypeReference>(){});

// 转换成ArrayList(默认)    list3  与 list4  效果相同

ArrayList list3 = JSON.parseObject(jsonstring2, new ArrayList().getClass());

ArrayList list4 = JSON.parseObject(jsonstring2, ArrayList.class);

for (int i = 0; i 

JSONObject io = list4.get(i);

System.out.println(io.get("a") + "======adn====="+io.get("b"));

}

}

}

class Usa {

private int count = 1888;

private String base = "project";

private Long a;

public Long getA() {

return a;

}

public void setA(Long a) {

this.a = a;

}

private String b;

public String getB() {

return b;

}

public void setB(String b) {

this.b = b;

}

}

json字符串 直接转换成List

ArrayList usa2 = JSON.parseObject(jsonstring2, new TypeReference>(){});

或者转换成对象数组

Usa[] usa2 = JSON.parseObject(jsonstring2, new TypeReference(){});

对象数组转List

List list = Arrays.asList(usa2);

我们使用new TypeReference的时候会生成多个class文件 里面有多少个new TypeReference 就会新增了class

即使我们在for循环里(0-N)写new TypeReference 这段代码也是多生成一个class文件,fastjson是看我们写了多少new TypeReference,而不是调用了多少次new TypeReference。推荐用ArrayList.class

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值