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. memcached set命令的大致处理逻辑笔记

    这次记录状态机的主要逻辑,跟踪set命令的执行流程,暂不涉及到内存申请这一块,下面内容基本都是代码注释 首先还是补充了解下客户连接在发送数据到数据被处理并返回过程中conn的各种状态的表示 enum ...

  2. Confluence 6 使用 LDAP 授权连接一个内部目录 - 用户 Schema 设置

    请注意:这部分仅在拷贝用户登录(Copy User on Login)功能被启用后可见. 其他用户 DN(Additional User DN) 这个值被用在进行用户查找和载入的时候来针对 base ...

  3. $LANG、$NLS_LANG 记录一下

    环境:linux $LANG 为linux termal终端环境下的 语言环境 $NLS_LANG  为oracle数据库中 会话中的语言环境. 个人理解,望大家补充

  4. C# 字符串 相关操作

    你或许知道你能使用String.Trim方法去除字符串的头和尾的空格,不幸运的是. 这个Trim方法不能去除字符串中间的C#空格. static void Main()         {       ...

  5. 将 HttpPostedFile 转换成 Image 或者 Bitmap

    代码如下: HttpFileCollection httpfiles = context.Request.Files; files = httpfiles[i]; Image im = Image.F ...

  6. gvim配置文件

      vimrc配置 source $VIMRUNTIME/vimrc_example.vim source $VIMRUNTIME/mswin.vim behave mswin "设置文件的 ...

  7. @Resource与@Autowired注解的区别

    一.写本博文的原因 年初刚加入到现在的项目时,在使用注解时我用的@Resource.后来,同事:你怎么使用@Resource注解?我:使用它有错吗?同事:没错,但是现在都使用@Autowired.我: ...

  8. winform窗体this方式和handle(句柄)方式的区别

    我们来比较winform窗体的this方式和win32api handle方式实现窗体的最大化.默认窗体.半透明.不透明的区别 1.窗体界面设计 this方式按钮: btnMaxWindow. btn ...

  9. 深入理解java异常【绝对经典,推荐最少看五遍】

    http://blog.csdn.net/hguisu/article/details/6155636 补充:检查异常(checkedException)与运行异常,什么时候throw,什么时候thr ...

  10. NodeJS express不是外部或内部命令的解决办法

    今天在用express生成项目的时候,使用cmd命令窗口发现express不是“内部或外部命令......”.但是我已经使用了npm install -g express成功安装了express模块插 ...