1. package com.zkn.newlearn.json;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import java.util.Map;
  5. /**
  6. * JSON字符串自动转换
  7. * Created by zkn on 2016/8/22.
  8. */
  9. public class JsonToMapTest01 {
  10. public static void main(String[] args){
  11. String str = "{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}";
  12. //第一种方式
  13. Map maps = (Map)JSON.parse(str);
  14. System.out.println("这个是用JSON类来解析JSON字符串!!!");
  15. for (Object map : maps.entrySet()){
  16. System.out.println(((Map.Entry)map).getKey()+"     " + ((Map.Entry)map).getValue());
  17. }
  18. //第二种方式
  19. Map mapTypes = JSON.parseObject(str);
  20. System.out.println("这个是用JSON类的parseObject来解析JSON字符串!!!");
  21. for (Object obj : mapTypes.keySet()){
  22. System.out.println("key为:"+obj+"值为:"+mapTypes.get(obj));
  23. }
  24. //第三种方式
  25. Map mapType = JSON.parseObject(str,Map.class);
  26. System.out.println("这个是用JSON类,指定解析类型,来解析JSON字符串!!!");
  27. for (Object obj : mapType.keySet()){
  28. System.out.println("key为:"+obj+"值为:"+mapType.get(obj));
  29. }
  30. //第四种方式
  31. /**
  32. * JSONObject是Map接口的一个实现类
  33. */
  34. Map json = (Map) JSONObject.parse(str);
  35. System.out.println("这个是用JSONObject类的parse方法来解析JSON字符串!!!");
  36. for (Object map : json.entrySet()){
  37. System.out.println(((Map.Entry)map).getKey()+"  "+((Map.Entry)map).getValue());
  38. }
  39. //第五种方式
  40. /**
  41. * JSONObject是Map接口的一个实现类
  42. */
  43. JSONObject jsonObject = JSONObject.parseObject(str);
  44. System.out.println("这个是用JSONObject的parseObject方法来解析JSON字符串!!!");
  45. for (Object map : json.entrySet()){
  46. System.out.println(((Map.Entry)map).getKey()+"  "+((Map.Entry)map).getValue());
  47. }
  48. //第六种方式
  49. /**
  50. * JSONObject是Map接口的一个实现类
  51. */
  52. Map mapObj = JSONObject.parseObject(str,Map.class);
  53. System.out.println("这个是用JSONObject的parseObject方法并执行返回类型来解析JSON字符串!!!");
  54. for (Object map: json.entrySet()){
  55. System.out.println(((Map.Entry)map).getKey()+"  "+((Map.Entry)map).getValue());
  56. }
  57. String strArr = "{{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}," +
  58. "{\"00\":\"zhangsan\",\"11\":\"lisi\",\"22\":\"wangwu\",\"33\":\"maliu\"}}";
  59. // JSONArray.parse()
  60. System.out.println(json);
  61. }
  62. }

JSON.parse()返回的结果是Object对象,JSON.parseObject()的返回结果可以是JSONObject(一个Map的实现类)也可以是指定的类型(可以用来处理泛型).JSONObject继承了JSON,JSONObject中没有定义parset的方法,它是通过调用父类(JSON)中的parse方法进行解析的。

JSON字符串自动转换的更多相关文章

  1. Android项目开发全程(四)-- 将网络返回的json字符串轻松转换成listview列表

    前面几篇博文介绍了从项目搭建到获取网络字符串,对一个项目的前期整体工作进行了详细的介绍,本篇接着上篇介绍一下怎么样优雅将网络返回的json字符串轻松转换成listview列表. 先上图,看一下效果. ...

  2. JAVA中使用alibaba fastjson实现JSONObject、Object、Json字符串的转换

    JAVA中使用alibaba fastjson实现JSONObject.Object.Json字符串的转换 Object转JSON字符串:String jsonStr = JSONObject.toJ ...

  3. C# 对象与JSON字符串互相转换的三种方式

    C# 对象与JSON字符串互相转换的三种方式 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 关于内存对象和JSON字符串的相互转换, ...

  4. JSON字符串互相转换的三种方式和性能比较

    C# 对象与JSON字符串互相转换的三种方式 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 关于内存对象和JSON字符串的相互转换, ...

  5. Java实现JSONObject对象与Json字符串互相转换

    Java实现JSONObject对象与Json字符串互相转换 JSONObject 转 JSON 字符串 Java代码: JSONObject jsonObject = new JSONObject( ...

  6. Java对象与Json字符串的转换

    Java对象与Json字符串的转换 JSON是一种轻量级的数据交换格式,常用于前后端的数据交流 后端 : 前端 Java对象 > JsonString Java对象 < jsonStrin ...

  7. @RequestBody配合@JsonFormat注解实现字符串自动转换成Date

    2018年08月28日 16:41:15 混合动力火锅 阅读数:440   在controller中使用@RequestBody可以自动将字符串转换成int或者将int转换成字符串,但是Date类型则 ...

  8. js-jquery-对象与JSON字符串互相转换

    1:jQuery插件支持的转换方式 代码如下: String→Object$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转 ...

  9. Json序列化与反序列化(对象与Json字符串的转换)--C#

    public class JsonHelper { #region Json序列化与反序列化 /// <summary> /// 将json转化为对象 /// (需要提前构造好结构一致的M ...

随机推荐

  1. bzoj 3196 && luogu 3380 JoyOI 1730 二逼平衡树 (线段树套Treap)

    链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3196 题面; 3196: Tyvj 1730 二逼平衡树 Time Limit: 10 Se ...

  2. v-for 在 VSCode 中出现 Elements in iteration expect to have 'v-bind:key' directives.

    在 VSCode 中编辑代码时,在有 v-for 的语句下面有一条红色波浪线,鼠标放上去有提示 Elements in iteration expect to have 'v-bind:key' di ...

  3. Linux下的sudo及配置

    sudo的常用命令 man sudoers # 参阅帮助 visudo # 编辑sudoers文件的命令 sudo -l # 查看可执行或禁止执行的命令 sudo -u user1 /bin/ls # ...

  4. 值得一学的webpack4

    初识webpack webpack是帮助我们管理复杂项目的工具. 学习webpack会极大扩充前端开发视野. webpack可以实现: Tree shaking 懒加载 代码分割 webpack4速度 ...

  5. docker时间与系统时间同步的问题

    系统是CentOS7,因为开发环境是windows没有这个问题,发布到docker以后当前时间进行比较,发现docker里面用java获取当时间不对,然后查docker的时间少了8个小时. 网上查了很 ...

  6. CentOS6和CentOS7

    http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso net.ifnames= biosdevname ...

  7. Java线程池源码解析

    线程池 假如没有线程池,当存在较多的并发任务的时候,每执行一次任务,系统就要创建一个线程,任务完成后进行销毁,一旦并发任务过多,频繁的创建和销毁线程将会大大降低系统的效率.线程池能够对线程进行统一的分 ...

  8. python super参数错误

    # -*- coding:utf-8 _*-"""@author:Administrator@file: yamlparser.py@time: 2018/09/07&q ...

  9. kettle 分组

    kettle 分组组可以实现group_concat的效果

  10. 论文翻译——Lattice indexing for spoken term detection

    第II节简要介绍与本文有关的先前工作第III节介绍文中使用的定义以及术语 第IV节介绍如何从原始ASR lattices中生成倒排索引结构 第V节详细介绍了ASR结构以及实验使用的数据 第VI节提供了 ...