首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用用户输入创建json数据库

使用用户输入创建json数据库
EN

Stack Overflow用户
提问于 2019-02-27 11:23:59
回答 2查看 156关注 0票数 0

我需要创建我的.json数组,如下所示:

代码语言:javascript
复制
  {
  "airports": [{
          "address": "Horley, Gatwick RH6 0NP, UK",
          "city": "London",
          "shortVersion": "LGW"
      },
      {
          "address": "Marupe, LV-1053",
          "city": "Riga",
          "shortVersion": "RIX"
      }
  ]
}

但我现在看起来是这样的:

代码语言:javascript
复制
{
  "airports": {
    "(LGW)": {
      "address": "Horley, Gatwick RH6 0NP, UK",
      "city": "London",
      "shortVersion": "(LGW)"
    },
    "(RIX)": {
      "address": "Marupe, LV-1053",
      "city": "Riga",
      "shortVersion": "(RIX)"
    }
  }
}

我现在用于用户输入的代码如下:

代码语言:javascript
复制
airports["airports"][inputShortVersion]["shortVersion"] = inputShortVersion;
airports["airports"][inputShortVersion]["city"] = inputCity;
airports["airports"][inputShortVersion]["address"] = inputAddress;

我已经搜索了整整一天了,但是我最接近的是它创建了上面的数组,但是在输入之后,它覆盖了最后的机场数据。

我在使用nlohmann json图书馆。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-27 11:32:42

您的期望输出中有一个序列容器,但是代码中有关联容器。

试着做些像

代码语言:javascript
复制
json inputAirport;
inputAirport["shortVersion"] = inputShortVersion;
inputAirport["city"] = inputCity;
inputAirport["address"] = inputAddress;

airports["airports"].push_back(inputAirport);
票数 1
EN

Stack Overflow用户

发布于 2019-02-27 11:35:48

显然,您正在创建一个json对象,而不是一个json数组。要获得数组,可以按照以下方式进行尝试:

代码语言:javascript
复制
airports["airports"] = nlohmann::json::array()

new_airport = nlohmann::json::object()
new_airport["shortVersion"] = inputShortVersion;
new_airport["city"] = inputCity;
new_airport["address"] = inputAddress;

airports["airports"].emplace_back(new_airport);

可以以可读性为代价,用带括号的抑制器列表将其写得更短:

代码语言:javascript
复制
airports["airports"] = nlohmann::json::array()

airports["airports"].emplace_back(
    {
        {"shortVersion", inputShortVersion},
        {"city", inputCity},
        {"address", inputAddress}
    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54904361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档