一:前端字符串转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中当字符串中含有换行(\n)时,new Function不能解析,但eval却可以。

3,使用全局的JSON对象。

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

目前IE8(S)/Firefox3.5+/Chrome4/Safari4/Opera10 已实现了该方法。

使用JSON.parse需严格遵守JSON规范,如属性都需用引号引起来,如下

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

name没有用引号引起来,使用JSON.parse所有浏览器中均抛异常,解析失败。而前两种方式则没问题。

4,Jquery插件支持的转换方式

$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 

二.Java中字符串转JSON格式

  1.使用JSONObject类的构造方法

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中字符串转JSON格式数组并遍历

//当需要把一串字符串转成一个json 数组 ,并遍历其中的内容时。
//首页导入 net.sf.json.JSONArray和net.sf.json.JSONObject 两个jar 包

String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'},{name:'d',value:'dd'}]" ;  // 一个未转化的字符串
JSONArray json = JSONArray.fromObject(str ); // 首先把字符串转成 JSONArray  对象
if(json.size()>0){for(int i=0;i<json.size();i++){JSONObject job = json.getJSONObject(i);  // 遍历 jsonarray 数组,把每一个对象转成 json 对象System.out.println(job.get("name")+"=") ;  // 得到 每个对象中的属性值
  }
}

四.Java中字符串转JSON格式的集合类型操作

map转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);

结果:{"age":"25","name":"思思博士"}

list转string

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

结果:["中华","人民","共和国"]

string转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());

结果:

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

String 转成我们的自定义类

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

字符串转换成数组(原文是转换成list,自己试了一下,不对,这些都是json工具类的扩展,不一定飞非要用,不过为了显得牛X,还是多装点吧)

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

结果:3
ccc


一,前端JSON转字符串or解析JSON格式数据

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插件支持的转换方式:

$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 
2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:

JSON.parse(jsonstr); //可以将json字符串转换成json对象 
JSON.stringify(jsonobj); //可以将json对象转换成json对符串 
注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。

3>Javascript支持的转换方式: 
eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号 
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。

4>JSON官方的转换方式: 
http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法; 
可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。

  

转载于:https://www.cnblogs.com/tingbogiu/p/5796355.html

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

  1. json c语言 数组转字符串数组中,json和字符串/数组/集合的互相转换の神操作总结...

    一:前端字符串转JSON的4种方式 1,eval方式解析,恐怕这是最早的解析方式了. function strToJson(str){ var json = eval('(' + str + ')') ...

  2. C#与Json实现字符串和对象的互相转换

    背景 最近项目中包含前后端数据交互,后台采用C#语言,自然少不了与前端的数据交互,经商议采用Json数据格式进行交互. 简单实现 1.新建C#控制台项目Test 2.解决方案管理器中右键单击引用-&g ...

  3. 关于数组集合之间的转换

    开发中经常用到数组和集合之间的转换和集合与集合之间的转换. 在JDK中有现成的API中供我们使用. 1.首先是数组和集合之间的转换: 1 import java.util.ArrayList; 2 i ...

  4. C/C++由字符串转JSON/JSON转字符串/数组解析/数组添加

    字符串转成JSON(其中str为字符串) 1 2 3 4 5 Json::Reader Reader; Json::Value DevJson; Reader.parse(str,DevJson); ...

  5. 字符串数组大写小写互相转换

    问题描述 对于输入的字符串数组,把里面的大写转换成小写 代码 思路:可以直到A的ASCII码是65,a的ASCII码是97,相差32 #include<stdio.h> #define N ...

  6. vue将json字符串转换为数组_json字符串、json对象、数组 三者之间的转换

    var Obj = JOSN.parse("cscac"); //将JSON字符串转换成JSON对象 var "cscac" = JSON.stringify( ...

  7. json字符串、json对象、数组 三者之间的转换

    json字符串转化成json对象 // jquery的方法 var jsonObj = $.parseJSON(jsonStr) //js 的方法 var jsonObj = JSON.parse(j ...

  8. android json转字符串数组,转换字符串到json数组出错

    在Andro遇新是直朋能到分览支体调id 日志: 04-24 21:14:02.603: W/System.err(831): org.json.JSONException: Value {" ...

  9. java JSON格式字符串数组 转 数组

    String goodBeanStr = bean.getGood_list();//获得josn格式字符串 JSONArray jsonArr = JSONArray.fromObject(good ...

最新文章

  1. 用html写消费记录页面,支付流水记录.html
  2. 2009-08 台湾印象
  3. 搜索算法相似度问题之BM25
  4. Web三个域对象的区别
  5. Discuz!NT数据库读写分离方案
  6. linux-vim编辑器简览
  7. 如何建立DB2分区数据库?(转)
  8. AR/MR研究团队和机构
  9. RTCM3.1/3.2
  10. linux opendir路径_Linux目录遍历opendir()
  11. PDMS.NET窗体
  12. h5破解网站图片防盗链
  13. 利用Photoshop制作二寸照片
  14. java咖啡平台,22年最新
  15. 【IoT】产品设计之思维模型:四种知识结构
  16. springboot项目访问jsp文件
  17. 从数据开始:『安卓读书』8000 万下载量炼成记
  18. Centos7 内存插槽信息
  19. linux vi 不小心按了ctrl z 怎么办,linux vi 中按了ctrl+s后没法退出
  20. python写入csv指定单元格_使用python将值插入csv中的特定单元格

热门文章

  1. 2016/06/22 中色启动筹码分析作业
  2. linux脚本编程(shell)浅介 (转载)
  3. TreeMap源码分析——深入分析(基于JDK1.6)
  4. java基本数据类型所占长度_java基本数据类型长度详解
  5. 低压抽屉柜常见故障处理方法_低压配电设备常见故障分析,处理办法介绍
  6. linux常用网络命令详解,linux网络命令详解(鸟哥)
  7. 卡方检验检验水准矫正_【2008.】趋势性卡方检验专题讨论
  8. c++ 多核cpu序列号_详解CPU几个重点基础知识
  9. 光盘刻录只允许读取不能拷贝_原来 8 张图,就可以搞懂「零拷贝」了
  10. 搬家后第一次缴电费,查询客户编号的解决办法