JSON

C++的Json解析库:jsoncpp(2)

字号+ 作者:H5之家 来源:H5之家 2016-01-26 09:22 我要评论( )

if (/spanspan style=color:#ff0000;!root[files].isNull()/spanspan style=color:#333333;) // 访问节点,Access an object value by name, create a null member if it does not exist. code = root[uploadid].as

    if (</span><span style="color:#ff0000;">!root["files"].isNull()</span><span style="color:#333333;">)  // 访问节点,Access an object value by name, create a null member if it does not exist. 

      code = root["uploadid"].asString(); 

      

    // 访问节点,Return the member named key if it exist, defaultValue otherwise. 

    code = root.get("uploadid", "null").asString(); 

  

    // 得到"files"的数组个数 

    int file_size = root["files"].size(); 

  

    // 遍历数组 

    for(int i = 0; i < file_size; ++i) 

    { 

      Json::Value val_image = root["files"][i]["images"]; 

      int image_size = val_image.size(); 

      for(int j = 0; j < image_size; ++j) 

      { 

        std::string type = val_image[j]["type"].asString(); 

        std::string url = val_image[j]["url"].asString(); 

      } 

    } 

  } 

  is.close(); 

  return 0; 

}</span> 

3. 在json结构中插入json

Json::Value arrayObj;   // 构建对象 

Json::Value new_item, new_item1; 

new_item["date"] = "2011-12-28"; 

new_item1["time"] = "22:30:36"; 

arrayObj.append(new_item);  // <strong>插入数组成员</strong> 

arrayObj.append(new_item1); // 插入数组成员 

int file_size = root["files"].size(); 

for(int i = 0; i < file_size; ++i) 

  root["files"][i]["exifs"] = arrayObj;   // 插入原json中 

4. 输出json

// 转换为字符串(带格式) 

std::string out = root.toStyledString(); 

// 输出无格式json字符串 

Json::FastWriter writer; 

std::string out2 = writer.write(root); 

JSON基础:

这与绝大多数编程语言的表示方法一致,例如:

12345(整数)

-3.9e10(浮点数)

Boolean 类型表示为 true 或 false 。此外,JavaScript 中的 null 被表示为 null,注意,true、false 和 null 都没有双引号,否则将被视为一个 String 。

JSON 还可以表示一个数组对象,使用 [] 包含所有元素,每个元素用逗号分隔,元素可以是任意的 Value,例如,以下数组包含了一个 String,Number,Boolean 和一个 null:

["abc",12345,false,null]

Object 对象在 JSON 中是用 {} 包含一系列无序的 Key-Value 键值对表示的,实际上此处的 Object 相当于 Java 中的 Map<String, Object>,而不是 Java 的 Class 。注意 Key 只能用 String 表示。

例如,一个 Address 对象包含如下 Key-Value:

city:Beijing

street:Chaoyang Road

postcode:100025(整数)

用 JSON 表示如下:

{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}

其中 Value 也可以是另一个 Object 或者数组,因此,复杂的 Object 可以嵌套表示,例如,一个 Person 对象包含 name 和 address 对象,可以表示如下:

{"name":"Michael","address":

    {"city":"Beijing","street":" Chaoyang Road ","postcode":100025}

}

 

 

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • php CI 实战教程:[5]用curl获取json并解析

    php CI 实战教程:[5]用curl获取json并解析

    2016-02-26 17:00

  •  JSON入门级学习总结-JSON数据结构

    JSON入门级学习总结-JSON数据结构

    2016-02-25 11:05

  • Android解析Json速度最快的库:json

    Android解析Json速度最快的库:json

    2016-02-13 18:00

  • JavaScript转换与解析JSON方法实例详解第1/2页

    JavaScript转换与解析JSON方法实例详解第1/2页

    2016-02-10 21:25

网友点评