JSON知多少-JSON数据结构

2019-03-02 01:01|来源: 网路


最近在开发微信平台,要使用JSON进行数据交换,之前用过JSON,但仅限于……

在开发微信平台中,要使用JSON形式如下:
代码片断1:

 {
     "button":[
     {    
          "type":"click",
          "name":"今日歌曲",
          "key":"V1001_TODAY_MUSIC"
      },
      {
           "type":"click",
           "name":"歌手简介",
           "key":"V1001_TODAY_SINGER"
      },
      {
           "name":"菜单",
           "sub_button":[
           {    
               "type":"view",
               "name":"搜索",
               "url":"http://www.soso.com/"
            },
            {
               "type":"view",
               "name":"视频",
               "url":"http://v.qq.com/"
            },
            {
               "type":"click",
               "name":"赞一下我们",
               "key":"V1001_GOOD"
            }]
       }]
 }

 


 
 然后用PHP的json_encode()函数,对一二维数组转换成JSON形式
 
 但转换出来的JSON形式:
 代码片断2:
 

{
    "button": {
        "1": {
            "type": "click",
            "name": "今日歌曲",
            "key": "V1001_TODAY_MUSIC"
        },
        "2": {
            "type": "click",
            "name": "歌手简介",
            "key": "V1001_TODAY_SINGER"
        },
        "3": {
            "name": "菜单",
            "sub_button": [
                {
                    "type": "view",
                    "name": "搜索",
                    "url": "http://www.soso.com/"
                },
                {
                    "type": "view",
                    "name": "视频",
                    "url": "http://v.qq.com/"
                },
                {
                    "type": "click",
                    "name": "赞一下我们",
                    "key": "V1001_GOOD"
                }
            ]
        }
    }
}

 



看出来形式是不一致的。

只能来了解一下JSON的结构形式。
JSON有两种数据:1.无序的对象结构;2.有序的数组结构
1.无序的对象结构
 无序的对象结构在不同语言中称法不同,比如在Python中称为字典,在JS中称为JSON对象……
 总之就是键/值对组合形式。
 刚才我转换出来的JSON结构就是无序的键/值对组合
2.有序的数组结构
 有序的的数组结构,即代码片断2所展示的结构。
 将数组作为有序数组进行转换JSON,就可以得到有序的JOSN数组结构。


转自:http://www.cnblogs.com/jksmile/p/3735930

相关问答

更多
  • 您可以迭代并获取对象作为结果数组的引用。 size": "0"的元素转到size4 。 var object = { "data": { "count_at_hub": [{ "hub": "A", "date": "", "size": "1", "count": 141 }, { "hub": "A", "date": "", "size": "2", "count": 44 }, { "hub": "A", "date": "", "size": "3", "count": 3 }, { "hub": ...
  • 令我困惑的是“alanisawesome”和“gracehop”参考。 最初我认为我应该用制作用户时创建的唯一ID替换它们 在Firebase数据库中存储用户信息的最常用方法是使用如下结构: /users $uid full_name: "Alan Turing" date_of_birth: "June 23, 1912" 如果我在上面的代码段中使用$uid ,您将使用Firebase身份验证为您生成的uid。 这是一个长而不透明的字符串。 例如"e836f712-4 ...
  • 这里是您在C#中找到的一种解决方案, DataTable类存储数据的行和列。 它是System.Data名称空间的一部分。 我们添加,选择并遍历存储的数据。 C#程序使用DataTable using System; using System.Data; class Program { static void Main() { // Get the DataTable. DataTable table = GetTa ...
  • 通常,您几乎可以完成tree复杂性。 你无法直接表示graphs东西(甚至是graphs without cycles ),但有办法克服这些限制。 矢量和列表可以表示为数组, 树作为数组的数组。 这里出现问题,使用图形,或者只是对JSON中任意对象的单个引用。 +- Root Object -------------+ | +-------+ +-------+ | | | OBJ_A | | OBJ_B | | | +-------+ +-------+ | | | ...
  • 使用XMLReader从XML文件或数据中提供NSDictionary 。 或者从JSON数据中获取NSJSONSerialization NSDictionary 。 现在使用这样的字典: //get channel from main dictionary NSDictionary *dictChannel = [dictXMLStructure objectForKey:@"channel"]; //Check dictionary has object or not if([dictChanne ...
  • fcl-json可以存储嵌套数据(一个对象可以有一个对象数组,可以有一个对象数组,参见提供的例子) 但是这样你就可以存储对象本身,而不是引用,这对于树来说很好,但对于循环结构来说不是。 DAG可以通过存储一个包含所有数据的平面数组来表示,但是将具有索引或某种形式的每个记录的唯一ID的项存储到数组中而不是指针。 如果您的根不是第一个元素,则需要另外存储根目录的索引/ iD fcl-json can store nested data (an object can have an array of object ...
  • 从顶层的JToken ,您可以使用SelectToken()导航到具有您感兴趣的数据的JArray : JToken token = JToken.Parse(json); JArray men = (JArray)token.SelectToken("people[0].men"); 从那里你可以像JArray一样处理JArray : foreach (JToken m in men) { Console.WriteLine("id: " + m["id"]); Console.Writ ...
  • 您的Information类是问题所在。 将Information内容放入Result并从Result删除Information 。 此外,元数据的字段名称是__metadata 。 这不是班级名称。 最后,你错过了一个将d包装为字段的类。 public class DataContainer { public Data d; } public class Data { public Result[] results; public String __next; } public ...
  • 您有点误解了d3.data的第二个参数是什么意思。 该参数通过为数据提供id而不是作为访问器函数用于对象的持久性 ,就像在d3 API中的大多数其他函数一样。 但是,当函数作为第一个参数传递时,如下所示: .data(function(d) { return d; }) 然后它确实表现为访问者功能。 在你的情况下,你想要的是这些方面: var newData = [{"user":"jim","scores":[40,20,30,24,18,40]}, {"user":"ray ...
  • 它几乎肯定是模糊的,取决于你的单词的插入。 我看待它的方式:数据结构,在传统的Comp Sci / Programming中,即数组,队列,二叉树通常具有特定的目的。 Json几乎可以用于任何事情,因此它为什么是数据格式。 但这两种定义都有道理 It's almost certainly ambiguous and depends on your interpration of the words. The way I see it: A datastructure, in conventional Com ...