首页 > 代码库 > Jsoncpp使用具体解释以及链接问题解决

Jsoncpp使用具体解释以及链接问题解决

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。

易于人阅读和编写。

同一时候也易于机器解析和生成。

它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON採用全然独立于语言的文本格式,可是也使用了类似于C语言家族的习惯(包含C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。



JSON建构于两种结构:

“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record)。结构(struct)。字典(dictionary),哈希表(hash table),有键列表(keyed list)。或者关联数组 (associative array)。


值的有序列表(An ordered list of values)。

在大部分语言中。它被理解为数组(array)。
这些都是常见的数据结构。其实大部分现代计算机语言都以某种形式支持它们。

这使得一种数据格式在相同基于这些结构的编程语言之间交换成为可能。

使用JsonCpp步骤:

一、下载JsonCpp

大家能够从我的资源下载,也能够从官方下载

二、编译Lib

大家用VS打开\jsoncpp-src-0.5.0\jsoncpp-src-0.5.0\makefiles\vs71文件夹下的project文件,然后编译就能够生成相关的Lib库(默认生成:json_vc71_libmt.lib)

技术分享


三、创建第二种project,将json_vc71_libmt.lib库加入到相关路径,并设置对应的project属性。同一时候源代码例如以下:

    //testjson 

    ifstream ifs;
    ifs.open("testjson.json");
    assert(ifs.is_open());

    Json::Reader reader;
    Json::Value root;
    if ((!reader.parse(ifs, root, false)))
    {
        return false;
    }

    std::string name = root["name"].asString();
    int age = root["age"].asInt();

链接库和加入头文件:

#pragma  comment(lib, "json_vc71_libmt.lib")
#include "../jsoncpp/include/json.h"
#include<fstream>
#include <cassert>
using namespace std;

须要注意的是。我们在执行新project可能出现下述错误:

问题一:error LINK2038:检測到"RuntimeLibrary" 的不匹配项

技术分享

解决方法:将新project的project编译选项和jsoncppproject的编译选项设置为同样:

技术分享

问题二:json_value.asm: No such file or directory

技术分享

解决方法:将jsoncppproject的编译选项中的回报编程序输出设置为无列表:

技术分享


參考博客:

Jsoncpp使用具体解释以及链接问题解决

C++ 解析Json——jsoncpp

Jsoncpp的使用


Jsoncpp使用具体解释以及链接问题解决