json数据转换成object对象及获取对象中list对象的值完整例子(包含所引入的包)。
pom.xml(所需的包依赖)
<!--json-lib相关依赖包 begin-->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<!--依赖jdk5-->
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>1.0.6</version>
</dependency>
<!--.....json-lib相关依赖包end-->
用于测试的类
import com.xh.xiaoyiduo.utils.baidu.entity.CustomBean;
import com.xh.xiaoyiduo.utils.baidu.entity.Results;
import net.sf.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
public static void main(String[] args) {
String results = "{\"log_id\":5132558772297159724,\"results\":[{\"name\":\"[default]\",\"score\":0.9850209951400757},{\"name\":\"vacuum\",\"score\":0.014979000203311443}]}";
JSONObject jsonObject = JSONObject.fromObject(results);
Map<String, Class> classMap = new HashMap<>();
classMap.put("results", Results.class);
CustomBean customBean = (CustomBean) JSONObject.toBean(jsonObject, CustomBean.class, classMap);
List<Results> rsList = customBean.getResults();
System.out.println(rsList);
for(Results rs : rsList){
if(rs.getName().equals("vacuum")){
System.out.println(rs.getScore() + " " + rs.getName());
}
}
}
CustomBean 类
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 定制Bean
*/
@Component
public class CustomBean {
private Long log_id;
private List<Results> results;
public Long getLog_id() {
return log_id;
}
public void setLog_id(Long log_id) {
this.log_id = log_id;
}
public List<Results> getResults() {
return results;
}
public void setResults(List<Results> results) {
this.results = results;
}
}
Results 类
package com.xh.xiaoyiduo.utils.baidu.entity;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
/**
* 结果bean
*/
@Component
public class Results {
private String name;
//如果出现解析错误,可以考虑换成Object类型哦
private BigDecimal score;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BigDecimal getScore() {
return score;
}
public void setScore(BigDecimal score) {
this.score = score;
}
}
运行测试类,结果输出: