zoukankan      html  css  js  c++  java
  • json 数据交换格式与java

    http://wiki.mbalib.com/wiki/数据交换

    数据交换是指为了满足不同信息系统之间数据资源的共享需要,依据一定的原则,采取相应的技术,实现不同信息系统之间数据资源共享的过程。

    数据交换格式:需要交互的数据的封装格式;

    主要考虑两点:

    1)数据的组织方式;

    2)数据的完备性;

    3)数据的保真性(所有元素的类型都有保存);

    http://baike.baidu.com/link?url=TPtlUBxpINIvU2Zc3NJDSlkDON133FUx3lp-IuNIzCHjfoRmZX8jgHUPrTbppDPffEXalnYHxUCxU-1HvA-YWK

    json对数据的组织及数据类型:

    组织形式:

    • 数据在键值对中
    • 数据由逗号分隔
    • 花括号保存对象
    • 方括号保存数组

    JSON 值

    JSON 值可以是:

    http://www.cnblogs.com/GT_Andy/archive/2009/07/28/1922037.html

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming LanguageStandard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

    JSON建构于两种结构:

    • “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 
    • 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。 

    这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

    http://blog.csdn.net/u010739551/article/details/48313159

    JSON和Java实体之间的映射

    JSON.simple实体映射从左侧向右侧解码或解析,并映射实体从右侧到左侧编码。

    JSONJava
    string java.lang.String
    number java.lang.Number
    true|false ava.lang.Boolean
    null null
    array java.util.List
    object java.util.Map

    虽然解码,默认 java.util.List的具体类是具体类 org.json.simple.JSONArray 和默认 java.util.Map 是org.json.simple.JSONObject。

    在Java的JSON编码

    下面是一个简单的例子来编码JSONObject使用Java的JSON对象的一个子类的java.util.HashMap 无序。如果您需要严格的顺序元素使用方法JSONValue.toJSONString(映射)有序映射实现作为 java.util.LinkedHashMap等。

    import org.json.simple.JSONObject;
    
    class JsonEncodeDemo 
    {
       public static void main(String[] args) 
       {
          JSONObject obj = new JSONObject();
    
          obj.put("name", "foo");
          obj.put("num", new Integer(100));
          obj.put("balance", new Double(1000.21));
          obj.put("is_vip", new Boolean(true));
    
          System.out.print(obj);
       }
    }

    虽然上述程序的编译和执行,这将产生以下结果:

    {"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}
  • 相关阅读:
    Silverlight应用小知识点
    svn如何给新文件加锁
    sql统计上周销售量的起止时间
    sql中null 和 ‘’(空字符串)
    蓝桥杯 算法训练 操作格子 [ 线段树 ]
    90分 蓝桥杯 算法提高 道路和航路 [ 最短路 ]
    蓝桥杯 算法训练 安慰奶牛 [ 最小生成树 ]
    蓝桥杯 算法提高 金属采集 [ 树形dp 经典 ]
    转 蓝桥杯 历届试题 大臣的旅费 [ dfs 树的直径 ]
    蓝桥杯 算法训练 最短路 [ 最短路 bellman ]
  • 原文地址:https://www.cnblogs.com/feng9exe/p/5913642.html
Copyright © 2011-2022 走看看