本文整理汇总了C++中json::Value::get_str方法的典型用法代码示例。如果您正苦于以下问题:C++ Value::get_str方法的具体用法?C++ Value::get_str怎么用?C++ Value::get_str使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类json::Value
的用法示例。
在下文中一共展示了Value::get_str方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: fileFilterPath
FilePath fileFilterPath(const json::Value& fileFilterJson)
{
if (json::isType<std::string>(fileFilterJson))
{
// get the underlying file path
std::string aliasedPath= fileFilterJson.get_str();
return module_context::resolveAliasedPath(aliasedPath);
}
else
{
return FilePath();
}
}
示例2: pathFromProjectPath
std::string pathFromProjectPath(json::Value projPathJson)
{
// no project
projects::ProjectContext& projectContext = projects::projectContext();
if (!projectContext.hasProject())
return std::string();
// no proj path
std::string projPath = !projPathJson.is_null() ? projPathJson.get_str() :
std::string();
if (projPath.empty())
return std::string();
// interpret path relative to project directory
FilePath filePath = projectContext.directory().childPath(projPath);
if (filePath.exists())
return module_context::createAliasedPath(filePath);
else
return std::string();
}
示例3: create
SEXP create(const json::Value& value, Protect* pProtect)
{
// call embedded create function based on type
if (value.type() == json::StringType)
{
return create(value.get_str(), pProtect);
}
else if (value.type() == json::IntegerType)
{
return create(value.get_int(), pProtect);
}
else if (value.type() == json::RealType)
{
return create(value.get_real(), pProtect);
}
else if (value.type() == json::BooleanType)
{
return create(value.get_bool(), pProtect);
}
else if (value.type() == json::ArrayType)
{
return create(value.get_array(), pProtect);
}
else if (value.type() == json::ObjectType)
{
return create(value.get_obj(), pProtect);
}
else if (value.is_null())
{
return R_NilValue;
}
else
{
return R_NilValue;
}
}
示例4: saveDocumentCore
Error saveDocumentCore(const std::string& contents,
const json::Value& jsonPath,
const json::Value& jsonType,
const json::Value& jsonEncoding,
const json::Value& jsonFoldSpec,
boost::shared_ptr<SourceDocument> pDoc)
{
// check whether we have a path and if we do get/resolve its value
std::string path;
FilePath fullDocPath;
bool hasPath = json::isType<std::string>(jsonPath);
if (hasPath)
{
path = jsonPath.get_str();
fullDocPath = module_context::resolveAliasedPath(path);
}
// update dirty state: dirty if there was no path AND the new contents
// are different from the old contents (and was thus a content autosave
// as distinct from a fold-spec or scroll-position/selection autosave)
pDoc->setDirty(!hasPath && (contents != pDoc->contents()));
bool hasType = json::isType<std::string>(jsonType);
if (hasType)
{
pDoc->setType(jsonType.get_str());
}
Error error;
bool hasEncoding = json::isType<std::string>(jsonEncoding);
if (hasEncoding)
{
pDoc->setEncoding(jsonEncoding.get_str());
}
bool hasFoldSpec = json::isType<std::string>(jsonFoldSpec);
if (hasFoldSpec)
{
pDoc->setFolds(jsonFoldSpec.get_str());
}
// handle document (varies depending upon whether we have a path)
if (hasPath)
{
std::string encoded;
error = r::util::iconvstr(contents,
"UTF-8",
pDoc->encoding(),
false,
&encoded);
if (error)
{
error = r::util::iconvstr(contents,
"UTF-8",
pDoc->encoding(),
true,
&encoded);
if (error)
return error;
module_context::consoleWriteError(
"Not all of the characters in " + path +
" could be encoded using " + pDoc->encoding() +
". To save using a different encoding, choose \"File | "
"Save with Encoding...\" from the main menu.");
}
// note whether the file existed prior to writing
bool newFile = !fullDocPath.exists();
// write the contents to the file
error = writeStringToFile(fullDocPath, encoded,
options().sourcePersistLineEnding());
if (error)
return error ;
// set the new path and contents for the document
error = pDoc->setPathAndContents(path);
if (error)
return error ;
// enque file changed event if we need to
if (!module_context::isDirectoryMonitored(fullDocPath.parent()))
{
using core::system::FileChangeEvent;
FileChangeEvent changeEvent(newFile ? FileChangeEvent::FileAdded :
FileChangeEvent::FileModified,
FileInfo(fullDocPath));
module_context::enqueFileChangedEvent(changeEvent);
}
// notify other server modules of the file save
module_context::events().onSourceEditorFileSaved(fullDocPath);
// save could change the extended type of the file so check it
detectExtendedType(pDoc);
}
//.........这里部分代码省略.........