Giter VIP home page Giter VIP logo

Comments (4)

artwyman avatar artwyman commented on July 20, 2024

Json objects are intentionally immutable. If you want to build a Json object incrementally, just create a Json::object (which is a typedef for map<string,Json>), add the elements you want, then construct a Json() from the final result. You can use the same using Json::array which is std::vector. The implicit constructors for various Json values should make it pretty easy to set the individual values from numbers or strings. If you need nested objects, just repeat the process I describe here at each level.

from json11.

pengweichu avatar pengweichu commented on July 20, 2024

Got it, thanks for your help, I will try it.

Best regards,

from json11.

artwyman avatar artwyman commented on July 20, 2024

I don't want to go deep debugging your code for you, but I don't see any
sign that the library is behaving badly. The first difference I see is an
extra array where there should, which looks like it maps to the Json::array
ar in your code, so I wonder why you think you need that.

Good luck.

Andrew

On Tue, Jan 5, 2016 at 12:38 AM, pengweichu [email protected]
wrote:

@artwyman https://github.com/artwyman I'm sorry, could you please help
me to create below JSON ?

{"transports":{"1":{"protocol":"TCP","port":5060},
"2":{"protocol":"UDP","port":5062}, "3":{"protocol":"TLS","port":5068}}}

Below is my code, but the out put string is :

{"transports": {"1": [{"protocol": "udp"}, {"port": 5060}], "2":
[{"protocol": "tcp"}, {"port": 5061}], "3": [{"protocol": "tls"}, {"port":
5062}]}}

std::vectorstd::string transports;
transports.push_back("udp");
transports.push_back("tcp");
transports.push_back("tls");

std::vector ports;
ports.push_back(5060);
ports.push_back(5061);
ports.push_back(5062);

std::map<string, Json> finalJson;

for (int i = 0; i < 3; ++i)
{
std::map<std::string, std::string> m1;
m1["protocol"] = transports[i];

std::map<std::string, int> m2;
m2["port"] = ports[i];

Json::array ar;
ar.push_back(Json(m1));
ar.push_back(Json(m2));

if (i == 0)
{
    finalJson["1"] = Json(ar);
}
else if (i == 1)
{
    finalJson["2"] = Json(ar);
}
else if (i == 2)
{
    finalJson["3"] = Json(ar);
}

}

Json::object ob;
ob["transports"] = Json(finalJson);
Json testJson = ob;

std::string ttt = testJson.dump();
printf("%s\n", ttt.c_str());


Reply to this email directly or view it on GitHub
#49 (comment).

from json11.

pengweichu avatar pengweichu commented on July 20, 2024

@artwyman Thanks, I have been got it solved. Sorry for bother.

Best regards,

from json11.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.