jsoncpp解析拼装数组

2023-05-16

int main()

{

/*

数组创建与分析:

例子一:

string strValue = "{\"ldh\":\"001\",\"gfc\":\"002\",\"yyj\":\"003\",\"andy\":[\"005\",\"123\",\"true\"]}";

Json::Reader read;

Json::Value value;

value["ldh"] = "001";

value["gfc"] = "002";

value["andy"].append( "005" );

value["andy"].append( "123" );

value["andy"].append( "true" );

//if( read.parse( strValue,value ) )

{

Json::Value val_array = value["andy"];

int iSize = val_array.size();

for ( int nIndex = 0;nIndex < iSize;++ nIndex )

{

cout<<val_array[nIndex]<<endl;

}

}

*/

/*

例子二:

Json::Reader read;

Json::Value value;

value["ldh"] = "001";

value["gfc"] = "002";

Value item;

Value array;

item["andy1"] = "005";

array.append( item );

item["andy1"] = "123";

array.append( item );

item["andy1"] = "true";

array.append( item );

value["andy"] = array;

cout<<value.toStyledString()<<endl;

Json::Value val_array = value["andy"];

int iSize = val_array.size();

for ( int nIndex = 0;nIndex < iSize;++ nIndex )

{

cout<<val_array[nIndex]<<endl;

if ( !val_array[nIndex]["andy1"].isNull() )

{

cout<<val_array[nIndex]["andy1"]<<endl;

}

}

*/

/*

例子三:

std::string strValue = "{\"name\":\"json\",\"array\":[{\"cpp\":\"jsoncpp\"},{\"java\":\"jsoninjava\"},{\"php\":\"support\"}]}";  

Json::Value value;

Reader read;

if ( !read.parse( strValue,value ) )

{

return -1;

}

cout<<value.toStyledString()<<endl;

Json::Value val_array = value["array"];

int iSize = val_array.size();

for ( int nIndex = 0;nIndex < iSize;++ nIndex )

{

cout<<val_array[nIndex]<<endl;

if ( val_array[nIndex].isMember( "cpp" ) )

{

cout<<val_array[nIndex]["cpp"]<<endl;

}

}

*/

getchar();

return 0;

}

起初使用jsoncpp的时候很别扭,例如第三个例子里面的数组有三项,在使用的时候我们却不能直接使用val_array[nIndex].asString.的确是没有搞清楚里面的格式.

总结一点:无论是哪种形式的数组,在解析的时候直接看看它对应索引的内容,我们就可以推导出其解析的方法.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jsoncpp解析拼装数组 的相关文章

随机推荐

  • python打印等腰三角形

    d 61 int input 39 enter an int 39 l 61 39 39 2 d 1 d 初始化列表 for i in range d l i 61 list l i 字符串转列表 x 61 i y 61 0 x 61 d
  • 实战|如何消除又臭又长的if...else判断更优雅的编程?

    最近在做代码重构 xff0c 发现了很多代码的烂味道 其他的不多说 xff0c 今天主要说说那些又臭又长的if else要如何重构 在介绍更更优雅的编程之前 xff0c 让我们一起回顾一下 xff0c 不好的if else代码 一 又臭又长
  • 最新版Ubuntu 17.10与Windows双系统安装、配置与美化教程(转载)

    感谢原创 xff0c 原文地址 http www jianshu com p 62d947731401 TOC 本教程基于Ubuntu 17 10 xff0c 但是除了下面的Gnome插件部分 xff0c 同时也支持Ubuntu16以上的几
  • Win8.1系统下VirtualBox的各种网络配置方法——Bridged networking

    概述配置仅界面设置桥接到无线网络接口与桥接到有线网络接口的网络相比不同操作系统下桥接网络的缺点 概述 VirtualBox使用主机系统上的一个设备驱动器 用于过滤物理网络适配器的数据 xff0c 因此也被称为网络过滤驱动器 net filt
  • 设置电脑网络唤醒-华硕主板+向日葵

    我一直用向日葵的开机棒唤醒电脑 xff0c 后来重装系统 xff0c 就开机棒失效了 由于是重装系统 xff0c 所以BIOS的设置没问题的 xff0c 就怀疑是新系统需要设置 xff0c 找了好久找到这个教程 xff0c 记录一下 参考这
  • 各种排序的运行时间对比

    冒泡排序 cpp view plain copy time 34 220s include lt cstring gt include lt iostream gt include lt fstream gt include lt algo
  • Cordova概述

    Cordova Apache Cordova is an open source mobile development framework It allows you to use standard web technologies HTM
  • Ubuntu18.04 项目配置

    有问题多重启就好啦 1 换源2 配置输入法3 安装Nvidia驱动4 安装Cuda5 下载谷歌浏览器并安装6 安装Anaconda37 pip换源8 Ubuntu18 04 无法通过蓝牙链接 Airpods9 安装PyCharm10 安装P
  • 基于numpy的CNN实现,进行MNIST手写数字识别

    主要框架来自于这篇文章 xff1a https blog csdn net qq 36393962 article details 99354969 xff0c 下面会以原文来代称这篇文章 本文在原文的基础上增加了交叉熵以及mnist数据集
  • libevent 的http模块实现http服务器

    首先声明 xff0c libevent的http模块是为单线程设计的 xff0c 如果业务逻辑中有耗时操作 xff0c 则需要自行设计线程池以便提高吞吐量 xff0c 每个工作线程中都要运行一个event base loop和一个evhtt
  • swig 使用案例

    包含数组 结构体嵌套 xff0c 函数指针传递等基本操作 swig默认不支持数组元素的写入 xff0c 如果想操作数组元素 xff0c 可以附加一些接口函数实现 比如下面在处理结构体的数组成员时 xff0c 使用 extend命令扩展了对应
  • 攻击防御实例——SQL注入

    攻击防御实例 SQL注入 1 i 表示匹配的时候不区分大小写 2 s 匹配任何不可见字符 xff0c 包括空格 制表符 换页符等等 等价于 f n r t v 3 information schema xff1a 是一个数据库 xff0c
  • 264 nal type

    NUAL HEAD 43 43 0 1 2 3 4 5 6 7 43 43 43 43 43 43 43 43 43 F NRI Type 43 43 F xff1d Forbidden zero bit 61 0 NRI 61 Nal r
  • SubClassWindow详解

    许多Windows程序员都是跳过SDK直接进行RAD开发工具 或VC xff0c 我想VC应不属于RAD 的学习 xff0c 有些人可能对子类化机制比较陌生 我们先看看什么是Windows的子类化 Windows给我们或是说给它自己定义了许
  • stl upper_bound函数实现

    写了一个upper bound的实现 其中递归使用二分法求解最上界 xff0c 虽然写的完全不像STL的风格 xff0c 但是练手还是可以的 view plaincopy to clipboardprint 01 include lt io
  • 关于TrackMouseEvent用法总结

    对于这个函数我也是最近想研究控件自绘才知道它真正怎么用 以前只是见到过 嗯 废话不多说 我先说下我的问题 如何响应鼠标离开某个窗体 控件 事件 先大概讲下步骤 然后再集中对 TrackMouseEvent 进行详解 为按钮添加以下几个函数
  • 关于CComboBox的自绘

    我想 如果大家学过一些控件的自绘的话 CComboBox算是很难的一种了 首先是它本身的复杂度 它由三个控件组成 CEdit CListBox CButton 我想但就CEdit来讲 就够你受得了 还要想想他们之间的消息传递 不禁让人无从下
  • 内部链接与外部链接

    在说内部连接与外部连接前 xff0c 先说明一些概念 1 声明 一个声明将一个名称引入一个作用域 在c 43 43 中 xff0c 在一个作用域中重复一个声明是合法的 以下都是声明 xff1a int foo int int 函数前置声明
  • partition/stable_partition详解

    Partition 将满足条件的元素向前移动 TEMPLATE FUNCTION partition template lt class BidIt class Pr gt inline BidIt Partition BidIt Firs
  • jsoncpp解析拼装数组

    int main 数组创建与分析 例子一 string strValue 61 34 34 ldh 34 34 001 34 34 gfc 34 34 002 34 34 yyj 34 34 003 34 34 andy 34 34 005