【问题标题】:Best way to port java script array push json to c++ syntax将 javascript 数组推送 json 移植到 C++ 语法的最佳方法
【发布时间】:2014-05-24 13:31:59
【问题描述】:

我试图思考将这个 javascript syntecs 移植到标准 c++ one 的最佳方法是什么

这是js代码:

 segments = [];
    segments.push({
               index: n,
               p1: { world: { z:  n   *segmentLength }, camera: {}, screen: {} },
               p2: { world: { z: (n+1)*segmentLength }, camera: {}, screen: {} },
               color: Math.floor(n/rumbleLength)%2 ? COLORS.DARK : COLORS.LIGHT
            });

我不明白在 c++ 向量中的索引之后应该是哪些结构? 我不知道构建 json 是什么,而是将 json 转换为 struct,这就是问题所在。
我不确定将此 json 转换为 struct 的正确方法是什么。

例如,这是表示 p1 的正确方式吗:

struct p1
{
   struct world {
         world::world()
         {
          z =  n   *segmentLength;
         }
         int z

   };
   int camera[MAX];
   int screen[MAX];
}

【问题讨论】:

  • 自己编写一组类来表示 javascript 中由关联数组表示的不同数据类型。使用 std::vector 代替数组。
  • 如果相机稍后添加一些子数据,你的结构应该改变,恕我直言,使用结构来翻译json不是一个好主意。

标签: javascript c++ porting


【解决方案1】:

你可以使用std::vector,它的元素是一个json对象,C++对JSON也有很好的支持3rd-party libray。

std::vector<Json::Value> vec;
Json::Value m;
...                   //set m with proper key, value
vec.push_back(m)

【讨论】:

  • 我不想使用 json ,我喜欢将其转换为 struct ,但是正确的方法是什么...?
  • 这样,您应该为您的 json 键定义结构,例如。结构一个{ int z; },如果你的json有这么多的层级,结构数会变多。
  • 说“C++ 支持 JSON”有点误导,但这是一个很好的 3rd 方库。无论如何,这不是我们要求的。
  • 谢谢,我会更新的。是的,我在 OP 修改要求之前回答。 :(
猜你喜欢
  • 2011-11-06
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-05
  • 1970-01-01
相关资源
最近更新 更多