一、源码编译

C++操作json字符串最好的库应该就是jsoncpp了,开源并且跨平台。它可以从这里下载

下载后将其解压到任意目录,它默认提供VS2003和VS2010的工程文件,使用VS2010可以直接打开makefiles\msvc2010目录下的sln文件。

工程文件提供Jsoncpp的win32和win64静态库生成。点击生成--批生成选择需要生成的配置后即可生成jsoncpp静态库。生成的文件在makefiles\msvc2010\(x64\)Debug(Release)\目录下。

二、测试工程

新建Win32控制台项目,为了区分Debug和Release版本,将Debug目录下的lib_json.lib改名为lib_json_d.lib,复制到新建的工程目录。

将jsoncpp目录下的include文件夹也复制到工程目录

修改工程属性如下

主文件代码如下:

// testJson.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <iostream>
#include <fstream>
//添加需要的头文件
#include "include/json/json.h" using namespace std; //链接需要的库文件
#ifdef _DEBUG
#pragma comment(lib,"lib_json_d.lib")
#else
#pragma comment(lib,"lib_json.lib")
#endif int _tmain(int argc, _TCHAR* argv[])
{
cout<<"测试json写入"<<endl;
Json::Value jsonRoot;
Json::Value jsonItem;
jsonItem["item1"] = "第一个条目";
jsonItem["item2"] = "第二个条目";
jsonItem["item3"] = 3;
jsonRoot.append(jsonItem);
jsonItem.clear();//清除上面已经赋值的项
jsonItem["First"]="1";
jsonItem["Second"]=2;
jsonItem["Third"]=3.0F;
jsonRoot.append(jsonItem);
cout<<jsonRoot.toStyledString()<<endl; cout<<"测试json写入到文件"<<endl; ofstream ofs;
ofs.open("test1.json");
ofs<<jsonRoot.toStyledString();
ofs.close(); cout<<"测试json读取"<<endl;
string sJson = jsonRoot.toStyledString();
jsonRoot.clear();
Json::Reader jsonReader;
if (!jsonReader.parse(sJson,jsonRoot))
{
return -1;
}
for (auto it = jsonRoot.begin();
it!=jsonRoot.end();
it++)
{
for (auto sit = it->begin();
sit != it->end();
sit++)
{
cout<<sit.key()<<"\t"<<sit.name()<<endl;
}
}
cout<<"测试读取json文件"<<endl;
ifstream ifs;
ifs.open("test1.json"); jsonRoot.clear();
if (!jsonReader.parse(ifs, jsonRoot))
{
return -1;
}
ifs.close();
for (auto it = jsonRoot.begin();
it!=jsonRoot.end();
it++)
{
for (auto sit = it->begin();
sit != it->end();
sit++)
{
cout<<sit.key()<<"\t"<<sit.name()<<endl;
}
}
return 0;
}

三、运行结果

四、相关下载

代码下载

C++简单使用Jsoncpp来读取写入json文件的更多相关文章

  1. 读取本地json文件,转出为指定格式json 使用Base64进行string的加密和解密

    读取本地json文件,转出为指定格式json   引用添加Json.Net 引用命名空间 using Newtonsoft.Json //读取自定目录下的json文件StreamReader sr = ...

  2. 读取本地json文件,并转换为dictionary

    // 读取本地JSON文件 - (NSDictionary *)readLocalFileWithName:(NSString *)name { // 获取文件路径 NSString *path = ...

  3. jQuery ajax读取本地json文件

    jQuery ajax读取本地json文件 json文件 { "first":[ {"name":"张三","sex": ...

  4. JavaScript读取本地json文件

    JavaScript读取本地json文件 今天调试了一上午,通过jQuery读取本地json文件总是失败,始终找不出原因,各种方法都试了 开始总以为是不是json格式的问题.高了半天不行 后来读了一个 ...

  5. python 数据写入json文件时中文显示Unicode编码问题

    一.问题描述 import json dir = { '春晓':'asfffa', '春眠不觉晓' : '处处闻啼鸟', '夜来风雨声' : 56789, 'asdga':'asdasda' } fp ...

  6. Json.NET读取和写入Json文件

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  7. 19.JAVA-从文件中解析json、并写入Json文件(详解)

    1.json介绍 json与xml相比, 对数据的描述性比XML较差,但是数据体积小,传递速度更快. json数据的书写格式是"名称:值对",比如: "Name" ...

  8. 读取本地json文件,转出为指定格式json

    引用添加Json.Net 引用命名空间 using Newtonsoft.Json //读取自定目录下的json文件 StreamReader sr = new StreamReader(@" ...

  9. Unity实现写入json文件

    using System.Collections; using System.Collections.Generic; using UnityEngine; using LitJson; using ...

随机推荐

  1. 取当前的地址栏的Url和url中的参数

    看到这样一段代码: exports.showLogin = function (req, res) { req.session._loginReferer = req.headers.referer; ...

  2. SpringMVC使用中遇到的问题总结

    使用的IDE工具是MyEclipse2014, spring版本为3.1.1 在使用Spring MVC时需要修改web.xml配置文件,web.xml默认放在WEB-INF目录下. 1.web.xm ...

  3. ios-遍历和排序

    // // main.m // OC-遍历和排序-homework // // Created by dllo on 16/2/25. // Copyright © 2016年 dllo. All r ...

  4. Ibatis学习总结3--SQL Map XML 映射文件

    在前面的例子中,只使用了 SQL Map 最简单的形式.SQL Map 的结构中还有其他更多 的选项.这里是一个 mapped statement 较复杂的例子,使用了更多的特性. <sqlMa ...

  5. 2012杀毒软件排行榜TOP10强

    2012杀毒软件排行榜TOP10强 1:avast!杀毒软件       来自捷克的avast!,已有数十年的历史,它在国外市场一直处于领先地位.avast!分为家庭版.专业版.家庭网络特别版.和服务 ...

  6. Windows Server 2008 显示桌面图标

    相信有朋友们有安装使用过windows 2008 server服务器,刚安装好的时候,桌面上只有一个回收站的图标,它没有像windows 7或windows 8一样可以直接通过右击鼠标的菜单来设置,要 ...

  7. HackerRank Ice Cream Parlor

    传送门 Ice Cream Parlor Authored by dheeraj on Mar 21 2013 Problem Statement Sunny and Johnny together ...

  8. 如何在ECSHOP前台后台中讲版权内容清除

    如何在ECSHOP前台后台中讲版权内容清除 作者:河南电脑学校网 点击次数:1065 发布时间:2012-02-02 20:13:58 一.ECSHOP前台显示的页面的版权在下面几个地方修改:(本人不 ...

  9. hibernate提供的5种检索数据方式

    一.五种检索数据方式 1.OID检索,即使用session.get或session.load通过类及指定id查询数据,如Customer c=(Customer)session.get("C ...

  10. svn代码回滚命令

    代码回滚提交: 比如要把73回滚到68 svn merge -r 73:68 http://my.repository.com/my/project/trunk 然后commit就行了 svn com ...