LookupTmchNoticeResult.cc 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. /*
  2. * Copyright 2009-2017 Alibaba Cloud All rights reserved.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #include <alibabacloud/domain/model/LookupTmchNoticeResult.h>
  17. #include <json/json.h>
  18. using namespace AlibabaCloud::Domain;
  19. using namespace AlibabaCloud::Domain::Model;
  20. LookupTmchNoticeResult::LookupTmchNoticeResult() :
  21. ServiceResult()
  22. {}
  23. LookupTmchNoticeResult::LookupTmchNoticeResult(const std::string &payload) :
  24. ServiceResult()
  25. {
  26. parse(payload);
  27. }
  28. LookupTmchNoticeResult::~LookupTmchNoticeResult()
  29. {}
  30. void LookupTmchNoticeResult::parse(const std::string &payload)
  31. {
  32. Json::CharReaderBuilder builder;
  33. Json::CharReader *reader = builder.newCharReader();
  34. Json::Value *val;
  35. Json::Value value;
  36. JSONCPP_STRING *errs;
  37. reader->parse(payload.data(), payload.data() + payload.size(), val, errs);
  38. value = *val;
  39. setRequestId(value["RequestId"].asString());
  40. auto allClaims = value["Claims"]["Claim"];
  41. for (auto value : allClaims)
  42. {
  43. Claim claimsObject;
  44. if(!value["MarkName"].isNull())
  45. claimsObject.markName = value["MarkName"].asString();
  46. if(!value["GoodsAndServices"].isNull())
  47. claimsObject.goodsAndServices = value["GoodsAndServices"].asString();
  48. auto allHolders = value["Holders"]["Holder"];
  49. for (auto value : allHolders)
  50. {
  51. Claim::Holder holdersObject;
  52. if(!value["Entitlement"].isNull())
  53. holdersObject.entitlement = value["Entitlement"].asString();
  54. if(!value["Org"].isNull())
  55. holdersObject.org = value["Org"].asString();
  56. auto addrNode = value["Addr"];
  57. if(!addrNode["City"].isNull())
  58. holdersObject.addr.city = addrNode["City"].asString();
  59. if(!addrNode["Sp"].isNull())
  60. holdersObject.addr.sp = addrNode["Sp"].asString();
  61. if(!addrNode["Pc"].isNull())
  62. holdersObject.addr.pc = addrNode["Pc"].asString();
  63. if(!addrNode["Cc"].isNull())
  64. holdersObject.addr.cc = addrNode["Cc"].asString();
  65. auto allStreet = addrNode["Street"]["Street"];
  66. for (auto value : allStreet)
  67. holdersObject.addr.street.push_back(value.asString());
  68. claimsObject.holders.push_back(holdersObject);
  69. }
  70. auto allContacts = value["Contacts"]["Contact"];
  71. for (auto value : allContacts)
  72. {
  73. Claim::Contact contactsObject;
  74. if(!value["Type"].isNull())
  75. contactsObject.type = value["Type"].asString();
  76. if(!value["Name"].isNull())
  77. contactsObject.name = value["Name"].asString();
  78. if(!value["Org"].isNull())
  79. contactsObject.org = value["Org"].asString();
  80. if(!value["Voice"].isNull())
  81. contactsObject.voice = value["Voice"].asString();
  82. if(!value["Fax"].isNull())
  83. contactsObject.fax = value["Fax"].asString();
  84. if(!value["Email"].isNull())
  85. contactsObject.email = value["Email"].asString();
  86. auto addr1Node = value["Addr"];
  87. if(!addr1Node["City"].isNull())
  88. contactsObject.addr1.city = addr1Node["City"].asString();
  89. if(!addr1Node["Sp"].isNull())
  90. contactsObject.addr1.sp = addr1Node["Sp"].asString();
  91. if(!addr1Node["Pc"].isNull())
  92. contactsObject.addr1.pc = addr1Node["Pc"].asString();
  93. if(!addr1Node["Cc"].isNull())
  94. contactsObject.addr1.cc = addr1Node["Cc"].asString();
  95. auto allStreet2 = addr1Node["Street"]["Street"];
  96. for (auto value : allStreet2)
  97. contactsObject.addr1.street2.push_back(value.asString());
  98. claimsObject.contacts.push_back(contactsObject);
  99. }
  100. auto allClassDescs = value["ClassDescs"]["ClassDesc"];
  101. for (auto value : allClassDescs)
  102. {
  103. Claim::ClassDesc classDescsObject;
  104. if(!value["ClassNum"].isNull())
  105. classDescsObject.classNum = std::stoi(value["ClassNum"].asString());
  106. if(!value["Desc"].isNull())
  107. classDescsObject.desc = value["Desc"].asString();
  108. claimsObject.classDescs.push_back(classDescsObject);
  109. }
  110. auto jurDescNode = value["JurDesc"];
  111. if(!jurDescNode["JurCC"].isNull())
  112. claimsObject.jurDesc.jurCC = jurDescNode["JurCC"].asString();
  113. if(!jurDescNode["Desc"].isNull())
  114. claimsObject.jurDesc.desc = jurDescNode["Desc"].asString();
  115. claims_.push_back(claimsObject);
  116. }
  117. if(!value["Id"].isNull())
  118. id_ = std::stol(value["Id"].asString());
  119. if(!value["NotBefore"].isNull())
  120. notBefore_ = value["NotBefore"].asString();
  121. if(!value["NotAfter"].isNull())
  122. notAfter_ = value["NotAfter"].asString();
  123. if(!value["Label"].isNull())
  124. label_ = value["Label"].asString();
  125. }
  126. std::vector<LookupTmchNoticeResult::Claim> LookupTmchNoticeResult::getClaims()const
  127. {
  128. return claims_;
  129. }
  130. std::string LookupTmchNoticeResult::getLabel()const
  131. {
  132. return label_;
  133. }
  134. long LookupTmchNoticeResult::getId()const
  135. {
  136. return id_;
  137. }
  138. std::string LookupTmchNoticeResult::getNotBefore()const
  139. {
  140. return notBefore_;
  141. }
  142. std::string LookupTmchNoticeResult::getNotAfter()const
  143. {
  144. return notAfter_;
  145. }