Fix Json reader, writer code
authorSangyoon Jang <jeremy.jang@samsung.com>
Tue, 4 Dec 2018 10:57:23 +0000 (19:57 +0900)
committer장상윤/Tizen Platform Lab(SR)/Engineer/삼성전자 <jeremy.jang@samsung.com>
Thu, 6 Dec 2018 03:03:28 +0000 (12:03 +0900)
Json::FastWriter, Json::Reader are deprecated.

Change-Id: Iecb83807cae37bdd56ca511c271460e3909ef119
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
src/common/capability.h
src/common/capability_manager.cc
src/common/package_manager.cc
src/common/remote_package_info.h

index cc57b2f698710c6c229195de31e63a2ce54ecaa9..3c31513eb1497b6798db09700e11907298678dc1 100644 (file)
@@ -7,6 +7,7 @@
 
 #include <json/json.h>
 
+#include <memory>
 #include <string>
 #include <utility>
 
@@ -21,10 +22,13 @@ class Capability {
         mime_(std::move(mime)), appid_(std::move(appid)),
         pkgid_(std::move(pkgid)), valid_(true) {}
   explicit Capability(const std::string& json_string) {
-    Json::Reader reader;
+    Json::CharReaderBuilder builder;
+    std::unique_ptr<Json::CharReader> reader(builder.newCharReader());
     Json::Value root;
+    std::string err;
 
-    if (reader.parse(json_string, root)) {
+    if (reader->parse(json_string.c_str(),
+            json_string.c_str() + json_string.size(), &root, &err)) {
       operation_ = root["operation"].asString();
       uri_ = root["uri"].asString();
       mime_ = root["mime"].asString();
@@ -41,8 +45,8 @@ class Capability {
     root["mime"] = this->mime();
     root["appid"] = this->appid();
     root["pkgid"] = this->pkgid();
-    Json::FastWriter writer;
-    return writer.write(root);
+    Json::StreamWriterBuilder builder;
+    return Json::writeString(builder, root);
   }
 
   bool IsValid() { return valid_; }
index 7f0e6b722a9f19c0c5fb8a462a38afeb3b844cff..3077db3601b5ec2931a041ec267e681766c198f2 100644 (file)
@@ -9,6 +9,7 @@
 #include <pkgmgr-info.h>
 
 #include <iostream>
+#include <memory>
 #include <utility>
 
 #include "common/capability.h"
@@ -122,17 +123,20 @@ std::string CapabilityManager::PackCapabilities() {
   for (const auto& cap : list_)
     caps.append(cap.Serialize());
   root["capabilities"] = caps;
-  Json::FastWriter writer;
-  return writer.write(root);
+  Json::StreamWriterBuilder builder;
+  return Json::writeString(builder, root);
 }
 
 std::vector<Capability> CapabilityManager::UnpackCapabilities(
     const std::string& caps_str) {
-  Json::Reader reader;
+  Json::CharReaderBuilder builder;
+  std::unique_ptr<Json::CharReader> reader(builder.newCharReader());
   Json::Value root;
+  std::string err;
 
-  if (!reader.parse(caps_str, root)) {
-    LOG(ERROR) << "Failed to parse JSON string of capabilities";
+  if (!reader->parse(caps_str.c_str(), caps_str.c_str() + caps_str.size(),
+          &root, &err)) {
+    LOG(ERROR) << "Failed to parse JSON string of capabilities: " << err;
     return {};
   }
 
index ac4ac7a7d3ac627cb30e3f7dd28a4b27dde6d12d..62501bffa68c2b626a74f1ff5829eb689ed22d39 100644 (file)
@@ -6,6 +6,7 @@
 
 #include <pkgmgr-info.h>
 
+#include <memory>
 #include <mutex>
 #include <string>
 #include <vector>
@@ -28,17 +29,20 @@ std::string PackageManager::PackPackages(
     packages.append(package.Serialize());
 
   root["remotepackages"] = packages;
-  Json::FastWriter writer;
-  return writer.write(root);
+  Json::StreamWriterBuilder builder;
+  return Json::writeString(builder, root);
 }
 
 std::vector<RemotePackageInfo> PackageManager::UnpackPackages(
     const std::string& packages_str) {
-  Json::Reader reader;
+  Json::CharReaderBuilder builder;
+  std::unique_ptr<Json::CharReader> reader(builder.newCharReader());
   Json::Value root;
+  std::string err;
 
-  if (!reader.parse(packages_str, root)) {
-    LOG(ERROR) << "Failed to parse JSON string of packages";
+  if (!reader->parse(packages_str.c_str(),
+          packages_str.c_str() + packages_str.size(), &root, &err)) {
+    LOG(ERROR) << "Failed to parse JSON string of packages: " << err;
     return {};
   }
 
index 07718c0a65bf13125d8e3163b86d3637322408b5..79cdd6b987ba607d567d60c7f78fb943de5778f3 100644 (file)
@@ -7,6 +7,7 @@
 
 #include <json/json.h>
 
+#include <memory>
 #include <string>
 #include <utility>
 #include <vector>
@@ -21,10 +22,13 @@ class RemotePackageInfo {
         version_(std::move(version)), appids_(std::move(appids)) {}
 
   explicit RemotePackageInfo(const std::string& json_string) {
-    Json::Reader reader;
+    Json::CharReaderBuilder builder;
+    std::unique_ptr<Json::CharReader> reader(builder.newCharReader());
     Json::Value root;
+    std::string err;
 
-    if (reader.parse(json_string, root)) {
+    if (reader->parse(json_string.c_str(),
+            json_string.c_str() + json_string.size(), &root, &err)) {
       Json::Value appid_list;
       appid_list = root["appids"];
 
@@ -49,8 +53,8 @@ class RemotePackageInfo {
     root["pkgid"] = this->pkgid();
     root["label"] = this->label();
     root["version"] = this->version();
-    Json::FastWriter writer;
-    return writer.write(root);
+    Json::StreamWriterBuilder builder;
+    return Json::writeString(builder, root);
   }
 
   const std::string& pkgid() const { return pkgid_; }