当前位置: 首页 > 面试题库 >

JSON-CPP-如何从字符串初始化并获取字符串值?

满自明
2023-03-14
问题内容

我的下面的代码当机(调试错误!R6010 abort()已被调用)。你能帮助我吗?我也想知道如何从字符串值初始化json对象。

Json::Value obj;
obj["test"] = 5;
obj["testsd"] = 655;
string c = obj.asString();

问题答案:

您好,这很简单:

1-您需要一个CPP JSON值对象(Json :: Value)来存储数据

2-使用Json Reader(Json :: Reader)读取JSON字符串并解析为JSON对象

3-做你的东西:)

这是执行这些步骤的简单代码:

#include <stdio.h>
#include <jsoncpp/json/json.h>
#include <jsoncpp/json/reader.h>
#include <jsoncpp/json/writer.h>
#include <jsoncpp/json/value.h>
#include <string>

int main( int argc, const char* argv[] )
{

    std::string strJson = "{\"mykey\" : \"myvalue\"}"; // need escape the quotes

    Json::Value root;   
    Json::Reader reader;
    bool parsingSuccessful = reader.parse( strJson.c_str(), root );     //parse process
    if ( !parsingSuccessful )
    {
        std::cout  << "Failed to parse"
               << reader.getFormattedErrorMessages();
        return 0;
    }
    std::cout << root.get("mykey", "A Default Value if not exists" ).asString() << std::endl;
    return 0;
}

要编译:g ++ YourMainFile.cpp -o main -l jsoncpp

希望对您有所帮助;)



 类似资料:
  • 我有两根绳子 在两种情况下,我应该删除

  • 如果String和其他类一样,那么如何使用双引号初始化它?

  • 问题内容: 解决方案 :这是我的错误。 正确的方法是 response.body()。string() 而不是 response.body.toString() 我正在使用Jetty servlet,URL是,每次请求此URL都会返回 当在浏览器中键入url时,它会显示出来,不幸的是,当我使用时,它会显示除json字符串以外的其他内存地址。 Okhttp代码Im使用: 有人可以帮忙吗? 问题答案:

  • 问题内容: 我一直在尝试从Swift中初始化一个字符串。 苹果在NSString Cocoa文档 中说您必须使用以下代码: 但是,苹果没有提供任何用法或放置示例的示例。 我正在尝试将以下代码从Objective-C转换为Swift 我一直在尝试许多可能的语法,例如以下语法(当然它不起作用): 问题答案: 这是您应该如何初始化: Swift 2.X或更旧版本 Swift 3或更高版本: 本文档说明了

  • 问题内容: 我试图解析JSON字符串“ {‘test’:‘100.00’}”并使用GSON库获取值:100.00。我的代码如下所示: 我的结果看起来像这样:“ 100.00”,但是我只需要100.00(不带引号)即可。如何归档? 问题答案:

  • 问题内容: 如果String和其他字符串一样是一个类,如何使用双引号将其初始化? 问题答案: Java的设计者决定保留面向对象语言中的原始类型,而不是将所有内容都变成对象,以提高语言的性能。原语存储在调用堆栈中,这需要较少的存储空间,并且操作成本较低。另一方面,对象存储在程序堆中,这需要复杂的内存管理和更多的存储空间。 出于性能原因,Java的String设计为介于基本体和类之间。 例如 注意: