日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

json和字符串/数组/集合的互相转换の神操作总结

發(fā)布時(shí)間:2023/12/1 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 json和字符串/数组/集合的互相转换の神操作总结 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一:前端字符串轉(zhuǎn)JSON的4種方式

1,eval方式解析,恐怕這是最早的解析方式了。

function strToJson(str){var json = eval('(' + str + ')');return json; }

2,new Function形式,比較怪異哦。

function strToJson(str){var json = (new Function("return " + str))();return json; }

IE6/7中當(dāng)字符串中含有換行(\n)時(shí),new Function不能解析,但eval卻可以。

3,使用全局的JSON對(duì)象。

function strToJson(str){return JSON.parse(str); }

目前IE8(S)/Firefox3.5+/Chrome4/Safari4/Opera10 已實(shí)現(xiàn)了該方法。

使用JSON.parse需嚴(yán)格遵守JSON規(guī)范,如屬性都需用引號(hào)引起來(lái),如下

var str = '{name:"jack"}'; var obj = JSON.parse(str); // --> parse error

name沒(méi)有用引號(hào)引起來(lái),使用JSON.parse所有瀏覽器中均拋異常,解析失敗。而前兩種方式則沒(méi)問(wèn)題。

4,Jquery插件支持的轉(zhuǎn)換方式

$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以將json字符串轉(zhuǎn)換成json對(duì)象

二.Java中字符串轉(zhuǎn)JSON格式

  1.使用JSONObject類(lèi)的構(gòu)造方法

public class Demo { public static void main(String[] args) throws Exception { String str = "{\"a\":\"b\", \"c\":\"d\"}"; JSONObject a = new JSONObject(str); System.out.println(a); // {"c":"d","a":"b"} System.out.println(a.get("c")); // d } }

  2.使用JSONObject的fromObject(jsonstr)方法

import net.sf.json.*;JSONObject jsStr = JSONObject.fromObject(params); //將字符串{“id”:1} int jsID = Integer.parseInt(jsStr.getString("id"));//獲取id的值

三.Java中字符串轉(zhuǎn)JSON格式數(shù)組并遍歷

//當(dāng)需要把一串字符串轉(zhuǎn)成一個(gè)json 數(shù)組 ,并遍歷其中的內(nèi)容時(shí)。 //首頁(yè)導(dǎo)入 net.sf.json.JSONArray和net.sf.json.JSONObject 兩個(gè)jar 包 String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'},{name:'d',value:'dd'}]" ; // 一個(gè)未轉(zhuǎn)化的字符串 JSONArray json = JSONArray.fromObject(str ); // 首先把字符串轉(zhuǎn)成 JSONArray 對(duì)象 if(json.size()>0){for(int i=0;i<json.size();i++){JSONObject job = json.getJSONObject(i); // 遍歷 jsonarray 數(shù)組,把每一個(gè)對(duì)象轉(zhuǎn)成 json 對(duì)象System.out.println(job.get("name")+"=") ; // 得到 每個(gè)對(duì)象中的屬性值 } }

四.Java中字符串轉(zhuǎn)JSON格式的集合類(lèi)型操作

map轉(zhuǎn)string

Map<String, String> map=new HashMap<String, String>(); map.put("name", "思思博士"); map.put("age","25"); JSONObject jsonObject=JSONObject.fromObject(map); String res=jsonObject.toString(); System.out.println(res);

結(jié)果:{"age":"25","name":"思思博士"}

list轉(zhuǎn)string

List<String> list=new ArrayList<String>(); list.add("中華"); list.add("人民"); list.add("共和國(guó)");JSONArray jsonArray=JSONArray.fromObject(list); String res=jsonArray.toString(); System.out.println(res);

結(jié)果:["中華","人民","共和國(guó)"]

string轉(zhuǎn)map

String res="{\"age\":\"25\",\"name\":\"思思博士\"}"; //或者這樣 //res="{'age':'25','name':'思思博士'}"; JSONObject jsonObject=JSONObject.fromObject(res); Map<String,String> map = (HashMap<String,String>) JSONObject.toBean(jsonObject, HashMap.class); System.out.println(map); System.out.println(map.size()); System.out.println(map.get("name")); System.out.println(map.getClass().getName());

結(jié)果:

{name=思思博士, age=25}
2
思思博士
java.util.HashMap

String 轉(zhuǎn)成我們的自定義類(lèi)

package json;public class UserBean {private String name;private String age;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;} } String userS = "{'name':'思思博士','age':'25'}"; JSONObject obj = JSONObject.fromObject(userS); UserBean userBean = (UserBean) JSONObject.toBean(obj, UserBean.class); System.out.println(userBean.getName());

字符串轉(zhuǎn)換成數(shù)組(原文是轉(zhuǎn)換成list,自己試了一下,不對(duì),這些都是json工具類(lèi)的擴(kuò)展,不一定飛非要用,不過(guò)為了顯得牛X,還是多裝點(diǎn)吧)

String arrayString="['a','b','ccc']"; JSONArray jsonArray=JSONArray.fromObject(arrayString); Object[] arr=jsonArray.toArray(); System.out.println(arr.length); System.out.println(arr[2]); 結(jié)果:3 ccc

一,前端JSON轉(zhuǎn)字符串or解析JSON格式數(shù)據(jù)

var a={"name":"tom","sex":"男","age":"24"}; var b='{"name":"Mike","sex":"女","age":"29"}'; var aToStr=JSON.stringify(a); var bToObj=JSON.parse(b); alert(typeof(aToStr)); //string alert(typeof(bToObj));//object JSON.stringify()

1>jQuery插件支持的轉(zhuǎn)換方式:?

$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以將json字符串轉(zhuǎn)換成json對(duì)象?
2>瀏覽器支持的轉(zhuǎn)換方式(Firefox,chrome,opera,safari,ie9,ie8)等瀏覽器:?


JSON.parse(jsonstr); //可以將json字符串轉(zhuǎn)換成json對(duì)象?
JSON.stringify(jsonobj); //可以將json對(duì)象轉(zhuǎn)換成json對(duì)符串?
注:ie8(兼容模式),ie7和ie6沒(méi)有JSON對(duì)象,推薦采用JSON官方的方式,引入json.js。?

3>Javascript支持的轉(zhuǎn)換方式:?
eval('(' + jsonstr + ')'); //可以將json字符串轉(zhuǎn)換成json對(duì)象,注意需要在json字符外包裹一對(duì)小括號(hào)?
注:ie8(兼容模式),ie7和ie6也可以使用eval()將字符串轉(zhuǎn)為JSON對(duì)象,但不推薦這些方式,這種方式不安全eval會(huì)執(zhí)行json串中的表達(dá)式。?

4>JSON官方的轉(zhuǎn)換方式:?
http://www.json.org/提供了一個(gè)json.js,這樣ie8(兼容模式),ie7和ie6就可以支持JSON對(duì)象以及其stringify()和parse()方法;?
可以在https://github.com/douglascrockford/JSON-js上獲取到這個(gè)js,一般現(xiàn)在用json2.js。

?

?

?

?

  

轉(zhuǎn)載于:https://www.cnblogs.com/tingbogiu/p/5796355.html

總結(jié)

以上是生活随笔為你收集整理的json和字符串/数组/集合的互相转换の神操作总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。