前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

问题由来:

最近由于做一个项目,项目的一个功能就是根据Listview的内容生成一个二维码,然后扫描二维码获取list,再重新显示listview。

核心就是: 
list—->生成二维码——>获取二维码—–>获取list

生成二维码的方法:

http://blog.csdn.net/demonliuhui/article/details/52948696

由于生成二维码的参数类型是String,不能是list。如果将list的内容get出来拼成String生成二维码。扫描二维码后如何处理String转为list又是一个棘手的问题。因此我想到了将list的内容封装成json,因为json本身就是String类型,所以生成二维码就会很简单,进而对json进行解析生成list。整个问题就变成了一个很easy的问题: 
list—->json——->生成二维码——>扫描二维码获取json——>解析json——->list

于是自己写了一个代码list转换为json:

 /***数据封装成json** @param items 物料入库数据* @return json* @throws JSONException*/
public static String GoodIn2Json(List<GoodInfo> items) throws JSONException {if (items == null) return "";JSONArray array = new JSONArray();JSONObject jsonObject = null;GoodInfo info = null;for (int i = 0; i < items.size(); i++) {info = items.get(i);jsonObject = new JSONObject();jsonObject.put(Api.COLORID, info.getColorId());jsonObject.put(Api.STOCK, info.getStock());array.put(jsonObject);}return array.toString();}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 216
  • /*** 将json数组解析出来,生成自定义数据的数组* @param data 包含用户自定义数据的json* @return 自定义信息的数据* @throws JSONException*/public static List<MoreInfo> Json2UserDefine(String data) throws JSONException {List<MoreInfo> items = new ArrayList<>();if (data.equals("")) return items;JSONArray array = new JSONArray(data);JSONObject object = null;MoreInfo item = null;for (int i = 0; i < array.length(); i++) {object = array.getJSONObject(i);String key = object.getString(Api.KEY);String value = object.getString(Api.VALUE);item = new MoreInfo(key, value);items.add(item);}return items;}

    7代码很简单,就不详解。这样貌似就大功告成了,但是:

    这样只能处理list里面只有一组数据的情况。如果循环封装成json,得到的格式就是:

    [{"name":"name0","age":0}][{"name":"name1","age":5}][{"name":"name2","age":10}]
    • 1

    而不是:

    [{"name":"name0","age":0}{"name":"name3","age":15},{"name":"name4","age":20}] 
    • 1

    很明显第一种格式并不是我想要的json格式,还要据循循环遍历json解析,想想就让人苦恼。 list里面参数少还好,如果有很多的话,岂不是要累死。

    于是我百度了一下:list转换为json,不查不知道,一查原来还有json转换为list。狂吐两口老血!!! 
    不过也算是学到了。 
    1.使用谷歌的Gson.jar。 
    2.使用阿里的fastJson.jar 
    已经打包好了,地址: 
    http://download.csdn.net/detail/demonliuhui/9666072

    简单的令人发指:

    谷歌的Gson.jar

    //list转换为json
    Gson gson = new Gson();
    List<Person> persons = new ArrayList<Person>();
    String str = gson.toJson(persons);  
    //json转换为list
    Gson gson = new Gson();
    List<Person> persons = gson.fromJson(str, new TypeToken<List<Person>>(){}.getType()); 

    阿里的fastJson.jar:
    //list转换为json
    List<CustPhone> list = new ArrayList<CustPhone>();
    String str=JSON.toJSON(list).toString();

    //json转换为list

      List<Person> list = new ArrayList<Person>();  list = JSONObject.parseArray(jasonArray, Person.class);  

    导入jar包直接调用,简单无烦恼。

    另一方法 :

    package com.listandjson;import java.util.ArrayList;
    import java.util.List;
    import net.sf.json.JSONArray;public class Test {public static void main(String[] args) {List<String> list = new ArrayList<String>();list.add("abc");list.add("123");//list转成jsonString json =JSONArray.fromObject(list).toString();System.out.println(json);  //运行:["abc","123"]//json转成listJSONArray jsonArray = JSONArray.fromObject(json);List<String> list2 = (List) JSONArray.toCollection(jsonArray);for (int i = 0; i < list2.size(); i++) {System.out.println(list2.get(i));  //运行:abc//    123}}
    }

Json与List的相互转换相关推荐

  1. Javascript 中 JSON 与对象 的相互转换

    1.Json 应用现状 客户端和服务端的数据交换以一定的格式进行,目前,这种数据格式以xml和Json为主.Json是JavaScript Object Notation的简写,采用JavaScrip ...

  2. JSON对象和JSON 字符串之间的相互转换

    功能上是一样的,都是将JSON字符串(str)转换成JSON对象 jsonobject .注意str一定得是以键值对存在的JSON字符串. JSON.parseObject(String text, ...

  3. json - json对象和json字符串直接的相互转换

    一.json字符串转json对象 1.json字符串转json对象 var obj = JSON.parse(str); //由json字符串转换为json对象 2.获取对象的value consol ...

  4. Python中string、json、bytes的相互转换

    json->string str = json.dumps(jsonobj) bytes->string str = str(bytes,'utf-8') string->json ...

  5. java对象与json对象间的相互转换的方法

    String json=JSON.toJSONString(user);//关键 1.简单的解析json字符串 首先将json字符串转换为json对象,然后再解析json对象,过程如下. 1 JSON ...

  6. json与xml的相互转换

    很多人遇到接口调试返回数据或者请求数据为XML格式,而自己公司使用的数据交互却是json格式的 这里就对xml与json相互转换写个小方法. import net.sf.json.JSONObject ...

  7. srt 字幕格式 和 json数组之间的相互转换

    最近在处理一个关于编辑视频字幕的项目,其中有部分逻辑值得做下记录. 1.转化 srt 所需时间格式. function srtTimestamp(seconds) {seconds = seconds ...

  8. java对象与json对象间的相互转换

    工程中所需的jar包,因为在网上不太好找,所以我将它放到我的网盘里了,如有需要随便下载. 点击下载 1.简单的解析json字符串 首先将json字符串转换为json对象,然后再解析json对象,过程如 ...

  9. Json与Java对象的相互转换

    一.json JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集, ...

最新文章

  1. NO7 利用三剑客awk-grep-sed-head-tail等7种方法实践
  2. SpringMVC学习笔记四:数据绑定
  3. Just enough(刚刚好)的软件开发文档什么样?
  4. modelsim仿真
  5. Spring.io本地服务器解决超时问题
  6. 基于容器服务 ACK 发行版打造 CNStack 社区版
  7. java 面试题解惑一 类的初始化顺序
  8. 数据报拥塞控制协议:DCCP(Datagram Congestion Control Protocol)
  9. beforeEach钩子与无限循环问题
  10. 前端—每天5道面试题(十)
  11. 第一个案例实操——WordCount
  12. Atitit 信息检索 之音乐检索实践 艾提拉注 目录 1. 常规检索 歌手 歌名 1 1.1. 年代检索 1 1.2. 歌词检索(可以依靠web 1 1.3. 哼唱检索 原曲检索(可以使用酷
  13. web压力测试工具(小而精)
  14. android 吃鸡模拟器,《刺激战场模拟器》电脑版 逍遥安卓模拟器智能键吃鸡设置...
  15. Chrome 扩展程序 CrxMouse 优化版 v3.0.1
  16. Spring-Cloud之Spring Cloud Netflix Eureka服务注册与发现
  17. 转发 微博 Qzone 微信 iPhone 11曝光,卢伟冰怒批的5伏1安亮了,网友:价格才是重点
  18. 测试工程师, 入职以后如何开展工作?
  19. Overload vs Override
  20. jbod ugood 磁盘驱动状态_Win10扫描修复磁盘驱动器错误全攻略

热门文章

  1. 算法 - 普里姆算法(修路问题求解)
  2. Redis 支持的数据类型
  3. 【2050 Programming Competition - 2050 一万人码 】非官方部分题解(HDU)
  4. 【CodeForces - 294B】Shaass and Bookshelf(枚举,贪心,思维,组内贪心组间dp)
  5. *【CF#510C】Fox And Names (拓扑排序)
  6. 2.Functions and Getting Help
  7. linux windows 域,linux加入windows域之完美解决方案
  8. 两组的数据平均值合并_不要进入数据陷进
  9. 互补品的交叉弹性系数_重庆事业单位综合备考:需求价格弹性和需求交叉价格弹性有何区别...
  10. c语言中entern int x y,关于extern和int main()的结构有关问题