❶ java 解析json字符串格式 [{}]
你在哪里解析
1、Java类里面:JSONObject jsonObject = new JSONObject(str);
然后用Iterator迭代器遍历取值,建议用反射机制解析到封装好的对象中
2、javascript:JSON.parse(str);
ie8(兼容模式),ie7和ie6没有JSON对象,不过http://www.json.org/提供了一个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("("+str+")");
❷ 请大神帮助,java如何解析json数据
java首先导入以下一个包
json-lib-2.3-jdk15.jar
commons-beanutils-1.7.0.jar
commons-httpclient-3.1.jar
commons-lang-2.3.jar
commons-logging-1.0.4.jar
commons-collections-3.1.jar
ezmorph-1.0.3
String dataStr = "{\"resultcode\":\"200\",.......}";
JSONObject json = JSONObject.fromObject(dataStr );
String resultcode = json.get('resultcode');
就是这样获取的;
String result = json.get('resultcode');
JSONObject resultJson = JSONObject.fromObject(result );
嵌套的json必须在重新解析
去了解下 JSON的相关api吧
❸ java解析json格式文件,再保存在数据库怎么做
1:定义一个实体类
2:用json lib将json字符串转为Java对象
3:用jdbc或hibernate将java对象存入数据库
直接读写文件,再把读出来的文件内容格式化成json,再用JDBC、Mybatis或者其他框架将json数据存入数据库。
假设实体类是这样的:
publicclassElectSet{
publicStringxueqi;
publicStringxuenian;
publicStringstartTime;
publicStringendTime;
publicintmenshu;
publicStringisReadDB;
//{"xueqi":,"xuenian":,"startTime":,"endTime":,"renshu":,"isReadDB":}
publicStringgetXueqi(){
returnxueqi;
}
publicvoidsetXueqi(Stringxueqi){
this.xueqi=xueqi;
}
publicStringgetXuenian(){
returnxuenian;
}
publicvoidsetXuenian(Stringxuenian){
this.xuenian=xuenian;
}
publicStringgetStartTime(){
returnstartTime;
}
publicvoidsetStartTime(StringstartTime){
this.startTime=startTime;
}
publicStringgetEndTime(){
returnendTime;
}
publicvoidsetEndTime(StringendTime){
this.endTime=endTime;
}
publicintgetMenshu(){
returnmenshu;
}
publicvoidsetMenshu(intmenshu){
this.menshu=menshu;
}
publicStringgetIsReadDB(){
returnisReadDB;
}
publicvoidsetIsReadDB(StringisReadDB){
this.isReadDB=isReadDB;
}
}
有一个json格式的文件,存的信息如下:
Sets.json:
{"xuenian":"2007-2008","xueqi":"1","startTime":"2009-07-1908:30","endTime":"2009-07-2218:00","menshu":"10","isReadDB":"Y"}
具体操作:
/*
*取出文件内容,填充对象
*/
publicElectSetfindElectSet(Stringpath){
ElectSetelectset=newElectSet();
Stringsets=ReadFile(path);//获得json文件的内容
JSONObjectjo=JSONObject.fromObject(sets);//格式化成json对象
//System.out.println("------------"jo);
//Stringname=jo.getString("xuenian");
//System.out.println(name);
electset.setXueqi(jo.getString("xueqi"));
electset.setXuenian(jo.getString("xuenian"));
electset.setStartTime(jo.getString("startTime"));
electset.setEndTime(jo.getString("endTime"));
electset.setMenshu(jo.getInt("menshu"));
electset.setIsReadDB(jo.getString("isReadDB"));
returnelectset;
}
//设置属性,并保存
publicbooleansetElect(Stringpath,Stringsets){
try{
writeFile(path,sets);
returntrue;
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
returnfalse;
}
}
//读文件,返回字符串
publicStringReadFile(Stringpath){
Filefile=newFile(path);
BufferedReaderreader=null;
Stringlaststr="";
try{
//System.out.println("以行为单位读取文件内容,一次读一整行:");
reader=newBufferedReader(newFileReader(file));
StringtempString=null;
intline=1;
//一次读入一行,直到读入null为文件结束
while((tempString=reader.readLine())!=null){
//显示行号
System.out.println("line"line":"tempString);
laststr=laststrtempString;
line;
}
reader.close();
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(reader!=null){
try{
reader.close();
}catch(IOExceptione1){
}
}
}
returnlaststr;
}
将获取到的字符串,入库即可。
❹ java解析json
JSON转成java集合简单步骤:1,加载:JSONArray jarr=JSONArray.fromObject(json字符串名);
2,转换:List<类型> list=(List<类型>)JSONArray.toColleaction(jarr,类型.class);
JSON转成java对象步骤,1,同上
2,类型如Emp(员工类)
Emp e=(Emp)JSONObject.toBean(jarr,Emp.class);
前提需要导入common的一系列的类库,大概有6个jar包吧。
后面的需要你自己找你需要的某个字符串了。不知道是不是你所说的意思。
❺ java如何返回json格式
例如:
Student st1 = new Student(1, "dg", 18, new Date());
Student st2 = new Student(2, "dg", 18, new Date());
Student st3 = new Student(3, "dg", 18, new Date());
Student st4 = new Student(4, "dg", 18, new Date());
Student st5 = new Student(5, "dg", 18, new Date());
List li = new ArrayList();
JSONObject JO1 = new JSONObject(st1);
JSONObject JO2 = new JSONObject(st2);
JSONObject JO3 = new JSONObject(st3);
JSONObject JO4 = new JSONObject(st4);
JSONObject JO5 = new JSONObject(st5);
li.add(JO1);
li.add(JO2);
li.add(JO3);
li.add(JO4);
li.add(JO5);
JSONArray Ja = new JSONArray(li);
Map ma = new HashMap();
ma.put("Result", "OK");
ma.put("Records", Ja);
JSONObject js = new JSONObject(ma);
out.print(js);
返回结果:
{"Result":"OK","Records":[{"recordDate":"Fri Dec 16 17:54:39 CST 2011","name":"dg","age":18,"personId":1},{"recordDate":"Fri Dec 16 17:54:39 CST 2011","name":"dg","age":18,"personId":2},{"recordDate":"Fri Dec 16 17:54:39 CST 2011","name":"dg","age":18,"personId":3},{"recordDate":"Fri Dec 16 17:54:39 CST 2011","name":"dg","age":18,"personId":4},{"recordDate":"Fri Dec 16 17:54:39 CST 2011","name":"dg","age":18,"personId":5}]}
❻ 如何java解析json数组
工具/原料
安装有eclipse软件的电脑一台
方法/步骤
1
首先我们在eclipse中创建一个java工程,在java工程中创建一个HelloWorld的类,在这个java的入口程序中,我们来创建一个json字符串,并且打印出来,如下图:
❼ java如何解析文件夹下的json文件
用文件流读出文件内容,然后再解析。
❽ java解析json格式文件
/*简单的回了复杂的也就会了*/
/*其实,json实际上是用来统一数据格式,所以,在使用它时,肯定要设计一下格式,
当然,所谓的复杂,只是嵌套的层次深了。。。解析方式并没有变。。个人理解,如果觉得有价值就看,没价值,就当没看见吧。。
呵呵。。
*/
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import net.sf.ezmorph.bean.MorphDynaBean;
import net.sf.json.JSONArray;
import net.sf.json.JSONSerializer;
/**
* @author John
*
*/
public class JSONDemo {
public static final String PREFIX = "index_";
/**
* @param args
*/
public static void main(String[] args) {
Map map = new HashMap();
String str ="[{'status': 5,'remarks': '\\xe6\\xa3\\x80\\xe6\\xb5\\x8b\\xe5\\xb7\\xb2\\xe7\\xbb\\x8f\\xe5\\xae\\x8c\\xe6\\x88\\x90','session': \"(1, '9.2.0.1.0', '192.168.177.115', 1521L, 'ora9', 1, '')\",'vuls': [\"('612300200001', 1, '', [{'values': '['version']', 'type': 0}, {'values': \'['%E7%89%88%E6%9C%AC%E5%8F%B7']\', 'type': 1}])\",\"('612300200002', 1, '', [{'values': '['version']', 'type': 0},{'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1},{'values': '['9.2.0.1.0']', 'type': 2}])\"], 'endTime':123}, 1L, '\\xe6\\xb5\\x8b\\xe8\\xaf\\x95\\xe6\\x89\\xab\\xe6\\x8f\\x8f\\xe4\\xbb\\xbb\\xe5\\x8a\\xa1']";
System.out.println("json格式字符串-->"+str);
JSONArray array = JSONArray.fromObject(str);
System.out.println("json格式字符串构造json数组元素的个数-->"+array.size());
ArrayList list = (ArrayList) JSONSerializer.toJava(array);
int i = 0;
for (Object obj : list) {
map.put(PREFIX+(i++), obj);
System.out.println("第"+i+"对象-->"+obj);
}
//解析第0个位置
Map bd = new HashMap();
MorphDynaBean bean = (MorphDynaBean) map.get(PREFIX+0);
bd.put("session", bean.get("session"));
bd.put("status", bean.get("status"));
bd.put("remarks", bean.get("remarks"));
bd.put("vuls", bean.get("vuls"));
bd.put("endTime", bean.get("endTime"));
Iterator iter = bd.keySet().iterator();
while (iter.hasNext()){
Object key = iter.next();
Object value = bd.get(key);
System.out.println("MorphDynaBean对象-->key="+key+",value="+value);
}
//解析vuls
ArrayList vuls = (ArrayList) bd.get("vuls");
Map vl = new HashMap();
int j = 0;
for (Object obj : vuls) {
vl.put(PREFIX+(j++), obj);
System.out.println("解析vuls的第"+i+"对象-->"+obj);
}
}
}
/*
* json格式字符串-->[{'status': 5,'remarks': '\xe6\xa3\x80\xe6\xb5\x8b\xe5\xb7\xb2\xe7\xbb\x8f\xe5\xae\x8c\xe6\x88\x90','session': "(1, '9.2.0.1.0', '192.168.177.115', 1521L, 'ora9', 1, '')",'vuls': ["('612300200001', 1, '', [{'values': '['version']', 'type': 0}, {'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1}])","('612300200002', 1, '', [{'values': '['version']', 'type': 0},{'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1},{'values': '['9.2.0.1.0']', 'type': 2}])"], 'endTime':123}, 1L, '\xe6\xb5\x8b\xe8\xaf\x95\xe6\x89\xab\xe6\x8f\x8f\xe4\xbb\xbb\xe5\x8a\xa1']
json格式字符串构造json数组元素的个数-->3
第1对象-->net.sf.ezmorph.bean.MorphDynaBean@94948a[
{session=(1, '9.2.0.1.0', '192.168.177.115', 1521L, 'ora9', 1, ''), status=5, remarks=???????·??????????, vuls=[('612300200001', 1, '', [{'values': '['version']', 'type': 0}, {'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1}]), ('612300200002', 1, '', [{'values': '['version']', 'type': 0},{'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1},{'values': '['9.2.0.1.0']', 'type': 2}])], endTime=123}
]
第2对象-->1L
第3对象-->???è??????????????
MorphDynaBean对象-->key=status,value=5
MorphDynaBean对象-->key=session,value=(1, '9.2.0.1.0', '192.168.177.115', 1521L, 'ora9', 1, '')
MorphDynaBean对象-->key=remarks,value=???????·??????????
MorphDynaBean对象-->key=vuls,value=[('612300200001', 1, '', [{'values': '['version']', 'type': 0}, {'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1}]), ('612300200002', 1, '', [{'values': '['version']', 'type': 0},{'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1},{'values': '['9.2.0.1.0']', 'type': 2}])]
MorphDynaBean对象-->key=endTime,value=123
解析vuls的第3对象-->('612300200001', 1, '', [{'values': '['version']', 'type': 0}, {'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1}])
解析vuls的第3对象-->('612300200002', 1, '', [{'values': '['version']', 'type': 0},{'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1},{'values': '['9.2.0.1.0']', 'type': 2}])
*/
❾ java中Json怎样解析数据
你这个JSON格式,就是数组里面放数组,所以是,取JSON对象》取JSON数组data》取JSON数组。
import java.util.ArrayList;import java.util.Iterator;import net.sf.json.*;public class MainClass {/*** @param args*/public static void main(String[] args) {JSONObject jsonObj = JSONObject.fromObject(JsonData.getData());JSONArray jsonArr = jsonObj.getJSONArray("data");Iterator<JSONArray> itr = jsonArr.iterator();JSONArray temp;while(itr.hasNext()) {temp = itr.next();System.out.println("===========Each JSONArray=========");for(int i = 0; i<temp.size(); i++) {System.out.println(temp.get(i));}}}private static class JsonData {private static String getData() {return "{\"data\":[[5000235,2,3441,8,17,\"北京测试\",\"10000101111\",\"\",\"\",\"100001\",\"\",\"2011-09-23 17:20:07\",18,\"vhcDefaultPwd\",1,0,\"2011-09-20 00:00:00\",12,0,380,\"测试\",213,1,0,0,0,0,0,\"2012-11-05 14:35:23\",\"\"],[5000236,27,3442,10,17,\"北京测试2\",\"1230000\",\"\",\"\",\"2010920002\",\"111111\",\"2011-09-23 17:20:08\",18,\"vhcDefaultPwd\",1,0,\"2011-09-20 00:00:00\",12,0,380,\"测试2\",213,1,0,0,0,0,0,\"2012-11-05 14:35:23\",\"\"]]}";}}}