1. 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+")");

2. java如何解析json 格式的字元串

public static void main(String[] args){
String temp="{'data':{'a':[{'b1':'bb1','c1':'cc1'},{'b2':'bb2','c2':'cc2'}]}}";
JSONObject jodata =JSONObject.fromObject(temp);
JSONObject joa =JSONObject.fromObject(jodata.get("data").toString());
JSONArray ja=JSONArray.fromObject(joa.get("a"));
for(int i=0;i<ja.size();i++){
JSONObject o=ja.getJSONObject(i);
if(o.get("b1")!=null){
System.out.println(o.get("b1"));
}
if(o.get("c1")!=null){
System.out.println(o.get("c1"));
}
if(o.get("b2")!=null){
System.out.println(o.get("b2"));
}
if(o.get("c2")!=null){
System.out.println(o.get("c2"));
}
}
}
註:要包含兩個jar包ezmorph-1.0.6.jar和json-lib-2.2.2-jdk15.jar,jar包在附件中

3. 如何java解析json數組

packagejava_email.demo;

importcom.google.gson.JsonArray;
importcom.google.gson.JsonObject;
importcom.google.gson.JsonParser;

publicclassReadJSON{
publicstaticvoidmain(Stringargs[]){

JsonParserparser=newJsonParser();//創建JSON解析器
Stringjson="{"title":"創建語音","content":[{"labels":["很好看","很好吃"],"voiceUrl":"/voice/1323423.pcm","voiceText":"很好","createDate":"2018-06-1114:29:43"},{"labels":["很好看1","很好吃"],"voiceUrl":"/voice/1323423.pcm","voiceText":"很好","createDate":"2018-07-2614:30:43"}],"enterpriseId":"20180726"}";

JsonObjectobject=(JsonObject)parser.parse(json);//創建JsonObject對象

System.out.println("title="+object.get("title"));//
System.out.println("enterpriseId="+object.get("enterpriseId"));

JsonArrayarray=object.get("content").getAsJsonArray();//得到為json的數組

System.out.println("content="+array);

for(inti=0;i<array.size();i++){
JsonObjectsubObject=array.get(i).getAsJsonObject();
System.out.println("labels="+subObject.get("labels"));
System.out.println("createDate="+subObject.get("createDate"));
}
}
}

4. 怎樣用java解析一個json字元串

public static void main(String[] args){

String temp="{'data':{'a':[{'b1':'bb1','c1':'cc1'},{'b2':'bb2','c2':'cc2'}]}}";

JSONObject jodata =JSONObject.fromObject(temp);

JSONObject joa =JSONObject.fromObject(jodata.get("data").toString());

JSONArray ja=JSONArray.fromObject(joa.get("a"));

for(int i=0;i<ja.size();i++){

JSONObject o=ja.getJSONObject(i);

if(o.get("b1")!=null){

System.out.println(o.get("b1"));

}

if(o.get("c1")!=null){

System.out.println(o.get("c1"));

}

if(o.get("b2")!=null){

System.out.println(o.get("b2"));

}

if(o.get("c2")!=null){

System.out.println(o.get("c2"));

}

}

}

註:要包含兩個jar包ezmorph-1.0.6.jar和json-lib-2.2.2-jdk15.jar,jar包在附件中

5. 用java怎麼解析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;

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);
}

}
}

6. Java解析json數據

JSONObject dataJson=new JSONObject("你的Json數據「);
JSONObject response=dataJson.getJSONObject("response");
JSONArray data=response.getJSONArray("data");
JSONObject info=data.getJSONObject(0);
String province=info.getString("province");
String city=info.getString("city");
String district=info.getString("district");
String address=info.getString("address");
System.out.println(province+city+district+address);

7. java解析json字元串數據

這個需要導入個jar包的,自己寫太麻煩,而且要考慮特殊字元的轉義的。

1. json-lib是一個java類庫,提供將Java對象,包括beans, maps, collections, java arrays and XML等轉換成JSON,或者反向轉換的功能。

2. json-lib 主頁 :http://json-lib.sourceforge.net/

3.執行環境

需要以下類庫支持

jakarta commons-lang 2.5

jakarta commons-beanutils 1.8.0

jakarta commons-collections 3.2.1

jakarta commons-logging 1.1.1

ezmorph 1.0.6

4.功能示例

這里通過JUnit-Case例子給出代碼示例



packagecom.mai.json;

importstaticorg.junit.Assert.assertEquals;

importjava.util.ArrayList;
importjava.util.Date;
importjava.util.HashMap;
importjava.util.Iterator;
importjava.util.List;
importjava.util.Map;
importnet.sf.ezmorph.Morpher;
importnet.sf.ezmorph.MorpherRegistry;
importnet.sf.ezmorph.bean.BeanMorpher;
importnet.sf.json.JSONArray;
importnet.sf.json.JSONObject;
importnet.sf.json.util.JSONUtils;

importorg.apache.commons.beanutils.PropertyUtils;
importorg.junit.Test;

publicclassJsonLibTest{

/*
*普通類型、List、Collection等都是用JSONArray解析
*
*Map、自定義類型是用JSONObject解析
*可以將Map理解成一個對象,裡面的key/value對可以理解成對象的屬性/屬性值
*即{key1:value1,key2,value2......}
*
*1.JSONObject是一個name:values集合,通過它的get(key)方法取得的是key後對應的value部分(字元串)
*通過它的getJSONObject(key)可以取到一個JSONObject,-->轉換成map,
*通過它的getJSONArray(key)可以取到一個JSONArray,
*
*
*/

//一般數組轉換成JSON
@Test
publicvoidtestArrayToJSON(){
boolean[]boolArray=newboolean[]{true,false,true};
JSONArrayjsonArray=JSONArray.fromObject(boolArray);
System.out.println(jsonArray);
//prints[true,false,true]
}


//Collection對象轉換成JSON
@Test
publicvoidtestListToJSON(){
Listlist=newArrayList();
list.add("first");
list.add("second");
JSONArrayjsonArray=JSONArray.fromObject(list);
System.out.println(jsonArray);
//prints["first","second"]
}


//字元串json轉換成json,根據情況是用JSONArray或JSONObject
@Test
publicvoidtestJsonStrToJSON(){
JSONArrayjsonArray=JSONArray.fromObject("['json','is','easy']");
System.out.println(jsonArray);
//prints["json","is","easy"]
}


//Map轉換成json,是用jsonObject
@Test
publicvoidtestMapToJSON(){
Mapmap=newHashMap();
map.put("name","json");
map.put("bool",Boolean.TRUE);
map.put("int",newInteger(1));
map.put("arr",newString[]{"a","b"});
map.put("func","function(i){returnthis.arr[i];}");

JSONObjectjsonObject=JSONObject.fromObject(map);
System.out.println(jsonObject);
}

//復合類型bean轉成成json
@Test
publicvoidtestBeadToJSON(){
MyBeanbean=newMyBean();
bean.setId("001");
bean.setName("銀行卡");
bean.setDate(newDate());

ListcardNum=newArrayList();
cardNum.add("農行");
cardNum.add("工行");
cardNum.add("建行");
cardNum.add(newPerson("test"));

bean.setCardNum(cardNum);

JSONObjectjsonObject=JSONObject.fromObject(bean);
System.out.println(jsonObject);

}

//普通類型的json轉換成對象
@Test
publicvoidtestJSONToObject()throwsException{
Stringjson="{name="json",bool:true,int:1,double:2.2,func:function(a){returna;},array:[1,2]}";
JSONObjectjsonObject=JSONObject.fromObject(json);
System.out.println(jsonObject);
Objectbean=JSONObject.toBean(jsonObject);
assertEquals(jsonObject.get("name"),PropertyUtils.getProperty(bean,"name"));
assertEquals(jsonObject.get("bool"),PropertyUtils.getProperty(bean,"bool"));
assertEquals(jsonObject.get("int"),PropertyUtils.getProperty(bean,"int"));
assertEquals(jsonObject.get("double"),PropertyUtils.getProperty(bean,"double"));
assertEquals(jsonObject.get("func"),PropertyUtils.getProperty(bean,"func"));
System.out.println(PropertyUtils.getProperty(bean,"name"));
System.out.println(PropertyUtils.getProperty(bean,"bool"));
System.out.println(PropertyUtils.getProperty(bean,"int"));
System.out.println(PropertyUtils.getProperty(bean,"double"));
System.out.println(PropertyUtils.getProperty(bean,"func"));
System.out.println(PropertyUtils.getProperty(bean,"array"));

ListarrayList=(List)JSONArray.toCollection(jsonObject.getJSONArray("array"));
for(Objectobject:arrayList){
System.out.println(object);
}

}


//將json解析成復合類型對象,包含List
@Test
(){
Stringjson="{list:[{name:'test1'},{name:'test2'}],map:{test1:{name:'test1'},test2:{name:'test2'}}}";
//Stringjson="{list:[{name:'test1'},{name:'test2'}]}";
MapclassMap=newHashMap();
classMap.put("list",Person.class);
MyBeanWithPersondiyBean=(MyBeanWithPerson)JSONObject.toBean(JSONObject.fromObject(json),MyBeanWithPerson.class,classMap);
System.out.println(diyBean);

Listlist=diyBean.getList();
for(Objecto:list){
if(oinstanceofPerson){
Personp=(Person)o;
System.out.println(p.getName());
}
}
}


//將json解析成復合類型對象,包含Map
@Test
(){
//把Map看成一個對象
Stringjson="{list:[{name:'test1'},{name:'test2'}],map:{testOne:{name:'test1'},testTwo:{name:'test2'}}}";
MapclassMap=newHashMap();
classMap.put("list",Person.class);
classMap.put("map",Map.class);
//使用暗示,直接將json解析為指定自定義對象,其中List完全解析,Map沒有完全解析
MyBeanWithPersondiyBean=(MyBeanWithPerson)JSONObject.toBean(JSONObject.fromObject(json),MyBeanWithPerson.class,classMap);
System.out.println(diyBean);

System.out.println("dothelistrelease");
List<Person>list=diyBean.getList();
for(Persono:list){
Personp=(Person)o;
System.out.println(p.getName());
}

System.out.println("dothemaprelease");

//先往注冊器中注冊變換器,需要用到ezmorph包中的類
=JSONUtils.getMorpherRegistry();
MorpherdynaMorpher=newBeanMorpher(Person.class,morpherRegistry);
morpherRegistry.registerMorpher(dynaMorpher);


Mapmap=diyBean.getMap();
/*這里的map沒進行類型暗示,故按默認的,裡面存的為net.sf.ezmorph.bean.MorphDynaBean類型的對象*/
System.out.println(map);
/*輸出:
{testOne=net.sf.ezmorph.bean.MorphDynaBean@f73c1[
{name=test1}
],testTwo=net.sf.ezmorph.bean.MorphDynaBean@186c6b2[
{name=test2}
]}
*/
List<Person>output=newArrayList();
for(Iteratori=map.values().iterator();i.hasNext();){
//使用注冊器對指定DynaBean進行對象變換
output.add((Person)morpherRegistry.morph(Person.class,i.next()));
}

for(Personp:output){
System.out.println(p.getName());
/*輸出:
test1
test2
*/
}

}}

8. java解析json數據成數組

importnet.sf.json.JSONArray;


publicclassTestJson
{
publicstaticvoidmain(String[]args)
{
Stringjson="[{"a":"111","b":"222","c":"333"},{"a":"1000","b":"2000","c":"000"},{"a":"999","b":"300","c":"700"}]";
JSONArrayjsonArr=JSONArray.fromObject(json);
Stringa[]=newString[jsonArr.size()];
Stringb[]=newString[jsonArr.size()];
Stringc[]=newString[jsonArr.size()];
for(inti=0;i<jsonArr.size();i++){
a[i]=jsonArr.getJSONObject(i).getString("a");
b[i]=jsonArr.getJSONObject(i).getString("b");
c[i]=jsonArr.getJSONObject(i).getString("c");
}

for(inti=0;i<c.length;i++){
System.out.print(a[i]+"");
System.out.print(b[i]+"");
System.out.print(c[i]);
System.out.println();
}
}
}

9. 求高手 java 解析json數據

我用fastjson實現的,參考一下
package test;
import java.util.ArrayList;
import com.alibaba.fastjson.JSON;
public class TestJson {
public static void main (String[]args){
ArrayList al=new ArrayList();
al.add("str1");
al.add("str2");
al.add("str3");
al.add("str4");
al.add("str5");
String jsonString = JSON.toJSONString(al);
System.out.println(jsonString);
ArrayList list = (ArrayList) JSON.parseArray(jsonString, String.class); //String表示數據類型
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}

10. java,如何 將json字元串 解析成對象

有一個叫fastjson的jar包 這個包的功能都齊全了

json轉list
List<T> a = (T)JSONArray.parse(json);
json轉object
Object a = (Object )JSONObject.parse(json);