jsoncpp用法通俗易懂之将数据合成json格式

void *upload(void *pParam)
{
	CUpSender *s = (CUpSender*)pParam;
	map<string, string> mx;
	char tmp[20] = {0};
	char filename[50] = {0};
	string data = "";
	while(1)
	{
		mx.clear();
		FileLog(FILENAME, "in thread m_urlcount = [%d]", s->m_urlcount);
		while(s->m_urlcount == 0)
		{
			FileLog(FILENAME, "there is no count files....wait ten seconds!!!!");
			sleep(10);
		}
		//这里是将id的那部分获取出来存入map中
		for(int i = 1; i != s->m_urlcount + 1; i++)
		{
			memset(tmp, 0, sizeof(tmp));
			memset(filename, 0, sizeof(filename));
			snprintf(tmp, sizeof(tmp), "%d", i);
			snprintf(filename, sizeof(filename), "/apps/hotel/run_env/bin/id/%d", i);
			ifstream iis(filename);
			getline(iis, mx[tmp]);
			FileLog(FILENAME, "read urlcount from %d = %s", filename, mx[tmp].c_str());
		}
		//这里开始组合
		Json::Value root;
		Json::Value roott;
     	Json::Value arrayObj;
     	Json::Value item;
		for(map<string, string>::iterator it = mx.begin(); it != mx.end(); it++)
		{
			item["id"] = it->first;
			arrayObj.append(item);
		}
		roott["mac"] = s->m_strDevMac;
		roott["uploadfrequency"] = s->m_uploadfrequency;
		roott["urls"] = arrayObj;
		root["uwdupload"] = roott;
		data = root.toStyledString();
		FileLog(FILENAME, "the thread will send to peng webservice data : [%s], url = [%s]", data.c_str(), (s->m_threadurl).c_str());
		s->SendCmd1(data, s->m_threadurl);
		FileLog(FILENAME, "the thread sleeptime is : [%d]", s->m_threadtime);
		sleep(s->m_threadtime);
	}
}

  上边是合成的过程。

{
	"uwdupload":{
    	"mac": "F0:D1:A9:C9:56:E8",
 		"uploadfrequency": "180",
 	"urls": [
            {
	    "id": "1",
               "total": "100",
            },
            {
 	    "id": "2",
               "total": "50",
            },
            {
                "id": "3",
                "total": "20",
            }
         ]
   }
}

  这是合成的结果。思想类同解析。

时间: 2024-10-22 20:20:44

jsoncpp用法通俗易懂之将数据合成json格式的相关文章

C# 任意类型数据转JSON格式

每天都是不一样,积极的去感受生活 C# 任意类型数据转JSON格式 /// <summary> /// List转成json /// </summary> /// <typeparam name="T"></typeparam> /// <param name="jsonName"></param> /// <param name="list"></para

关于多条数据转为json格式单次传输的问题 2017.05.27

数据形式如下: var mycars = [];//定义数组存放多条数据 for(var i=0;i<2;i++){ var jsonData = {};//定义变量存放单条数据 jsonData.MainCmdID = 1; jsonData.SubCmdID = i; mycars[i]=JSON.stringify(jsonData);//单挑数据转为json格式,存放到数组 } var toStr="";//定义字符变量准备拼接json for (var i=0;i<

了解php数据转json格式与前端交互基础

php数据转json格式与前端交互 ArryJson1.php <?php $test=array(); $word=array("我12","要43","把23","你65","们7","全87","都","吃","掉79","嗯78","啊09","蒙67",

jsoncpp用法通俗易懂

刚工作不久,最近遇到一个要解析一个web服务器发过来的json格式的文件,文件如下: { "global": { "renew": "true", "serverurl": "192.168.1.100:31208/opinfo/", "frequency": "60" }, "auth": { "enable": "

在Sql Server 2016中使用For Json子句把数据作为json格式导出

原文地址:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/export-query-result-as-json-format-in-sql-server-2016/ 使用for json子句把查询结果作为json字符串导出,将作为sql server 2016中首先可用的一个特性.如果你熟悉for xml子句,那么将很容易理解for json: select ccolumn, expression, column as ali

springmvc 后台向页面EasyUI的Datagrid传递数据(JSon格式)

===============EasyUIDatagrid 分页==================== EasyUIDatagrid 需要提供的JSon格式为:total和rows,所以我们只需要在后台中返回一个JSon格式为total和rows //定义一个EasyUIDatagridResult 类来包装JSon数据 public class EasyUIDatagridResult { private long total;  //返回JSon中的total值 private List<

利用 js-xlsx 实现 Excel 文件导入并解析Excel数据成json格式的数据并且获取其中某列数据

演示效果参考如下:XML转JSON 另一个搭配SQL实现:http://sheetjs.com/sexql/index.html 详细介绍: 1.首先需要导入js <script src="http://oss.sheetjs.com/js-xlsx/xlsx.full.min.js"></script> 2.导入文件框 这里importExcel(this)是方法,名字可以自己定义. <input type="file"onchang

struts2将数据通过Json格式显示于EasyUI-datagrid数据表格

1.搭建ssh开发环境 2.写好Dao.service等方法 3.建立DTO数据传输对象: package com.beichende.sshwork.user.web.dto; import java.util.ArrayList; import java.util.List; import com.beichende.sshwork.pojo.User; public class Pagination<T> { private int total; private List<User

从表格获取数据组JSON格式提交

最近做的一个任务,一个带input框的表格,里面可以填充数据,点保存的时候需要从表格里面提取每个input的value值. dom结构如下 <!-- 表格信息--> <div id="table-info" class="tab-pane"> <div class="stackDiv" style="overflow: hidden; zoom: 1;"> <div class=&qu