java对象和字符串互转以及json字符串转ListObject集合对象转json串
字符串转对象
⼀个字符串中包含多个对象转换为对象集合
问题描述
今天在做⼀个调⽤别⼈接⼝的时候返回来⼀个json串数组,解析返回⼀个ArrayList集合的问题,因为调⽤别⼈的接⼝有点多,所以就想做的通⽤⼀点,虽然有点low,但是也是⼀步⼀个脚印⾛过去,相信⾃⼰的坚持让⾃⼰能做的更好
例如:”[{\”name\”:\”gg\”,\”pass\”:\”123\”},{\”name\”:\”gg\”,\”pass\”:\”234\”},
{\”name\”:\”gg\”,\”pass\”:\”345\”}]”,字符串是这样的,转换为对象集合,⾥⾯包含两个属性值,⼀个是name,⼀个pass,下⾯直接上代码:
package wxlogin;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
dehaus.jackson.map.ObjectMapper;
import org.junit.Test;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
* @author lb
* @time 2017年9⽉14⽇上午11:46:21
*/
@SuppressWarnings("unchecked")
public class JSONUtil {
public static<T> T strToObject(String str,Class<T> clazz){
ObjectMapper mapper = new ObjectMapper();
T t = null;
try {
t = adValue(str, clazz);
return t;
} catch (IOException e) {
e.printStackTrace();
}
return t;
}
//对象转换为字符串
public static<T> String objectToStr(T t){
ObjectMapper mapper = new ObjectMapper();
String str = null;
try {
str = mapper.writeValueAsString(t);
} catch (IOException e) {
e.printStackTrace();
}
return str;
}
@Test
public void testJson(){
String str = "{\"name\":\"gg\",\"pass\":\"123\"}";
System.out.println(str);
System.out.println(str);
System.out.println("--------------字符串转换为对象分割线-------------------");
Person person = strToObject(str,Person.class);
System.out.Name()+":"+Pass());
System.out.println("----------------对象转换为字符串分割线-----------------");
//对象转换为字符串
String rtnString = objectToStr(person);
System.out.println(rtnString);
}
//对象转换为List集合
private static <T> List<T> strToList(String str, Class<T> clazz) {
JSONArray json = JSONArray.fromObject(str);
JSONObject object = null;
T t = null;
List<T> list = new ArrayList<>();
for (int i = 0; i < json.size(); i++) {
object = JSONObject.(i));
t = (T) Bean(object, clazz);
list.add(t);
}
return list;
}
public static void main(String[] args) {
String str = "[{\"name\":\"gg\",\"pass\":\"123\"},{\"name\":\"gg\",\"pass\":\"234\"},{\"name\":\"gg\",\"pass\":\"345\"}]";
// List<Person> list = JSONUtil.strToList(str,Person.class);
List<Person> list = strToList(str, Person.class);
for (Person ps : list) {
System.out.Name() + ":" + ps.getPass());
}
}
}
使⽤的java实体如下:
package wxlogin;
/**
* @author lb
* @time 2017年9⽉14⽇上午11:42:51
*/
public class Person {
private String name;
private String pass;
public String getName() {
return name;
}
public void setName(String name) {object to
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
}
为了⽅便我直接把后来联想到的对象和字符串互转也加进来了。
下⾯运⾏main⽅法查看结果
gg:123
gg:234
gg:345
⽅法是⽤来解析类似的请求返回值的。
下⾯运⾏测试⽅法得到结果
在使⽤的过程中,对于这些⼩⼯具类我⽬的是为了节约⼀些⼯作量,但是后⾯ObjectMapper这个确实没⽤过,查了⼀下资料,写了两个⽬前常⽤的,以后⾃⼰也会慢慢添加。(ObjectMapper是⼀个⾼效转化json格式数据的类)盗⽤别⼈的话
注意在使⽤ObjectMapper需要引⼊包,l中加⼊如下内容
有不正确之处还望指正。 欢迎提问。 <dependency >
<groupId &dehaus.jackson </groupId >
<artifactId >jackson-mapper-asl </artifactId >
<version >1.7.1</version >
</dependency >
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论