本文目錄一覽:
- 1、java 解析json字元串格式 [{}]
- 2、java 怎麼解析jsonp字元串
- 3、java 如何解析JSON
- 4、用java解析json的時候程序沒有報錯,輸出pro.MyJson@143bf3d,沒有預期的json結構出來,是什麼原因?
- 5、java註解@RequestBody的接收類型可以用JSONObject嗎
- 6、求高手 java 解析json數據
java 解析json字元串格式 [{}]
你在哪裡解析
1、Java類裡面:JSONObject jsonObject = new JSONObject(str);
然後用Iterator迭代器遍歷取值,建議用反射機制解析到封裝好的對象中
2、javascript:JSON.parse(str);
ie8(兼容模式),ie7和ie6沒有JSON對象,不過提供了一個json.js,這樣ie8(兼容模式),ie7和ie6就可以支持JSON對象以及其stringify()和parse()方法;你可以在上獲取到這個js,一般現在用json2.js。
ie8(兼容模式),ie7和ie6可以使用eval()將字元串轉為JSON對象,
var c='{“name”:”Mike”,”sex”:”女”,”age”:”29″}’;
var cToObj=eval(“(“+str+”)”);
java 怎麼解析jsonp字元串
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;ija.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包在附件中
java 如何解析JSON
一、JSON(JavaScriptObjectNotation)一種簡單的數據格式,比xml更輕巧。Json建構於兩種結構:1、「名稱/值」對的集合(Acollectionofname/valuepairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hashtable),有鍵列表(keyedlist),或者關聯數組(associativearray)。如:{「name」:」jackson」,「age」:100}2、值的有序列表(Anorderedlistofvalues)。在大部分語言中,它被理解為數組(array)如:{「students」:[{「name」:」jackson」,「age」:100},{「name」:」michael」,」age」:51}]}二、java解析JSON步驟A、伺服器端將數據轉換成json字元串首先、伺服器端項目要導入json的jar包和json所依賴的jar包至builtPath路徑下(這些可以到JSON-lib官網下載:)然後將數據轉為json字元串,核心函數是:publicstaticStringcreateJsonString(Stringkey,Objectvalue){JSONObjectjsonObject=newJSONObject();jsonObject.put(key,value);returnjsonObject.toString();}B、客戶端將json字元串轉換為相應的javaBean1、客戶端獲取json字元串(因為android項目中已經集成了json的jar包所以這裡無需導入)publicclassHttpUtil{publicstaticStringgetJsonContent(StringurlStr){try{//獲取HttpURLConnection連接對象URLurl=newURL(urlStr);HttpURLConnectionhttpConn=(HttpURLConnection)url.openConnection();//設置連接屬性httpConn.setConnectTimeout(3000);httpConn.setDoInput(true);httpConn.setRequestMethod(“GET”);//獲取相應碼intrespCode=httpConn.getResponseCode();if(respCode==200){returnConvertStream2Json(httpConn.getInputStream());}}catch(MalformedURLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}return””;}privatestaticStringConvertStream2Json(InputStreaminputStream){StringjsonStr=””;//ByteArrayOutputStream相當於內存輸出流ByteArrayOutputStreamout=newByteArrayOutputStream();byte[]buffer=newbyte[1024];intlen=0;//將輸入流轉移到內存輸出流中try{while((len=inputStream.read(buffer,0,buffer.length))!=-1){out.write(buffer,0,len);}//將內存流轉換為字元串jsonStr=newString(out.toByteArray());}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnjsonStr;}}2、獲取javaBeanpublicstaticPersongetPerson(StringjsonStr){Personperson=newPerson();try{//將json字元串轉換為json對象JSONObjectjsonObj=newJSONObject(jsonStr);//得到指定jsonkey對象的value對象JSONObjectpersonObj=jsonObj.getJSONObject(“person”);//獲取之對象的所有屬性person.setId(personObj.getInt(“id”));person.setName(personObj.getString(“name”));person.setAddress(personObj.getString(“address”));}catch(JSONExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnperson;}publicstaticListgetPersons(StringjsonStr){Listlist=newArrayList();JSONObjectjsonObj;try{//將json字元串轉換為json對象jsonObj=newJSONObject(jsonStr);//得到指定jsonkey對象的value對象JSONArraypersonList=jsonObj.getJSONArray(“persons”);//遍歷jsonArrayfor(inti=0;i
用java解析json的時候程序沒有報錯,輸出pro.MyJson@143bf3d,沒有預期的json結構出來,是什麼原因?
我下面引用的數據來自你上面給出的. 我看了你提供的代碼,main方法中有些亂,主要是你不懂原理才顯得很亂……….
這麼說吧: 1 JSONObject.fromObject(obj) 是把obj對象轉換成json字元串格式{key:value….} 格式. 2 JSONObject.toBean(json字元串 , 對象); 是將json字元串格式數據賦值給 你指定的集合對象或Java對象, 這裡它會根據你給定的json字元串裡面的key的名稱去找MyJson對象中與之匹配的屬性名稱 然後就是利用反射機制給對象賦值了,這個你就不用管理,反正是json包來做的. 簡而言之就是: json格式{key : value} 的key 去找java對象的屬性名,然後賦值. 不懂再問吧,我就說到這裡了. 重點是先理解原理,把原理先理解好了,再試著編碼,這樣才會 節約時間,提高效率. 這個json包無非乾的就是 1把json字元串格式 轉成 java 對象,也就把數據填入java對象中, 2 java 對象 轉成 json字元串格式 罷了.
String json1 = “{‘myId’:2,’name’:’onename’,’fun’:’true’}”;
JSONObject json = JSONObject.fromObject(json1);
System.out.println(json);
MyJson jo1 = (MyJson)JSONObject.toBean(json, MyJson.class);
System.out.println(jo1.getfun());
MyJson jo= new MyJson();
jo.setId(2);
jo.setName(“onename”);
jo.setfun(“true”);
JSONObject json11 = JSONObject.fromObject(jo);
System.out.println(json11);
java註解@RequestBody的接收類型可以用JSONObject嗎
當然是可以使用JSONObject接收咯,但是一般不建議這麼做,你這麼做的你的代碼可讀性就非常的差了,後人接手你的代碼,根本不知道你的前端傳參有哪些,每個欄位又是代表什麼意思,想這麼做無非就是懶得寫實體想節省點時間,相信我,多寫一個實體帶來的收益遠遠大於你節省的那點時間,況且寫一個實體類注釋每個欄位的意義花費不了幾個時間的。
求高手 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;ilist.size();i++){
System.out.println(list.get(i));
}
}
}
原創文章,作者:QMOM,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/137001.html