import java.util.LinkedList;
import java.util.*;
import java.util.ListIterator; import net.sf.json.JSONArray;
import net.sf.json.JSONObject; public class a11111111 {
public static void main(String[] args) { JSONObject obj=new JSONObject();
obj.put("name", "小明");
obj.put("age", "10");
//输出json对象这种数据结构是:{"name":"小明","age":"10"}
JSONArray jsonobj = JSONArray.fromObject(obj); 对象转数组
//[{"name":"小明","age":"10"}] //数组
JSONArray array=new JSONArray();
array.add("1");
array.add("2");
array.add("3");
array.add(3,obj);
//["1","2","3",{"name":"小明","age":"10"}]

         //字符串
String str ="{name:Tom,age:10}" ; // 不可以这样定义str
String str1 = "{\"name\": \"小明\",\"age\": 10 }";

        //MAP
Map<String, Object> map = new HashMap<String, Object>();
map.put("1001", "yes");//map里面装有yes
map.put("1002", array);//map里面装有yes
// {1002=["1","2","3",{"name":"小明","age":"10"}], 1001=yes} //数组不可转对象
// JSONObject jsonobj = JSONObject.fromObject(array);
JSONObject jsonobj0 = JSONObject.fromObject(array.get(3));//字符串转对象
JSONObject jsonobj1 = JSONObject.fromObject(str1);
JSONObject jsonobj2 = JSONObject.fromObject(map);//map转对象
System.out.println(jsonobj0);
System.out.println(jsonobj1);
System.out.println(jsonobj2); /*{"name":"小明","age":"10"}
{"name":"小明","age":10}
{"1002":["1","2","3",{"name":"小明","age":"10"}],"1001":"yes"} */

 //都是输出:小明
System.out.println(jsonobj0.get("name"));
System.out.println(jsonobj1.get("name"));
JSONArray str_ = JSONArray.fromObject(jsonobj2.get("1002"));//字符串转数组
System.out.println(JSONObject.fromObject(str_.get(3)).get("name"));
     //字符串再转对象
       System.out.println(str_.get(3).equals(jsonobj0));//true
//内容相容,但一个是对象 一个是字符串 拥有的方法不同 //所有的先转成json对象-然后再转成map
HashMap<String, Object> data = new HashMap<String, Object>();
Iterator it = jsonobj0.keys();
// 遍历jsonObject数据,添加到Map对象
while (it.hasNext())
{
String key = (String)it.next();
String value = (String) jsonobj0.get(key);
data.put(key, value);
}
System.out.println(data);
//map {name=小明, age=10} /*所有的obj调用toString()方法转成字符串*/
// java中数据结构可以直接按名输出,也可以数据结构名.toString输出
字符串转数组

(精)字符串,map -> json对象->map(初学者必读)的更多相关文章

  1. Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解

    Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解 一.Jquery遍历筛选数组 1.jquery grep()筛选遍历数组 $().ready( function(){ v ...

  2. FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换

    fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换. JSONObject:fas ...

  3. JAVA中如何将一个json形式的字符串转为json对象或对象列表

    import java.util.*; import java.text.SimpleDateFormat; import org.json.JSONObject; import org.json.J ...

  4. 做筛选遍历时遇到的json字符串、json对象、json数组 三者之间的转换问题

    这个是后台对登录用户以及筛选条件的操作 @Override public List<SdSdPer> listResults(String sidx, String sord) { try ...

  5. Json字符串和Json对象的简单总结

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率). ...

  6. JavaScript操作JSON的方法总结,JSON字符串转换为JSON对象

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

  7. 【荐】使用eval()、new Function()将JSON字符串转换为JSON对象

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 第一种解析方式:使用eval函数来解析,并且使用j ...

  8. JSON字符串与JSON对象的区别

    Q:什么是"JSON字符串",什么是"JSON对象",两者的区别? a.JSON对象是直接可以使用JQuery操作的格式,如C#中可以用对象(类名)点出属性(方 ...

  9. js 将json字符串转换为json对象的方法解析

    推荐: var obj = eval('(' + str + ')'); var last=JSON.stringify(obj); //将JSON对象转化为string字符 例如: JSON字符串: ...

随机推荐

  1. [Java学习] Java包装类、拆箱和装箱详解

    虽然 Java 语言是典型的面向对象编程语言,但其中的八种基本数据类型并不支持面向对象编程,基本类型的数据不具备“对象”的特性——不携带属性.没有方法可调用. 沿用它们只是为了迎合人类根深蒂固的习惯, ...

  2. Illumina Sequence Identifiers 序列标识符 index详解

    大家基本都知道什么是 FASTA 和 FastQ 格式了,但这是不够的. 我们还需要了解世界上最大的测序公司自己定制的 FastQ 格式,因为你可能会经常用到,有时还会亲自去处理它们. 本文主题:Il ...

  3. vs.net应用程序图标以及制作安装程序快捷方式图标设置

           我们通常在开发软件完毕后需要打包制作安装程序,这个时侯一般都会需要设置应用程序的图标,使用默认的图标一般都比较难看,那么我们应该怎样设置自定义的图标呢? 我现在要讲的图标设置有两种情况, ...

  4. Android设计模式之单例模式

    定义 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中一个类只有一个实例 . 单例模式是设计模式中最简单的形式之一.这一模式的目的是使得类的一 ...

  5. Spring Boot 介绍

    Spring Boot 能够让你更加容易创建一个独立启动,产品化的,并且是基于 Spring 的应用程序.我们为 Spring 平台及第三方库提供开箱即用的设置,这样你就可以有条不紊的开始开发,减少在 ...

  6. 每天一个linux命令(3):pwd

    Linux中用 pwd 命令来查看”当前工作目录“的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置. ...

  7. How to create VO s and VLs dynamically in OAF

    I have to create 2 VO objects dynamicaly and created 2 VL's dynamically .I have a static HGrid.and i ...

  8. java.lang.Exception: Socket bind failed: [730048]

    严重: Error initializing endpoint java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/ ...

  9. 流媒体传输协议详解之---RTSP认证

    from:http://blog.csdn.net/machh/article/details/52121648 Rtsp认证主要分为两种:   基本认证(basic authentication)和 ...

  10. PHP:第一章——PHP中的算术运算符/递增、递减运算符/赋值运算符

    算术运算符 //$a=10; $b=5; //取反: //echo -$a;//输出:-10: //加法: //echo $a+$b;//输出:15 //减法: //echo $a-$b;//输出:5 ...