2012-07-07 102 views
0

我的JSON文件看起来像这样:为什么JSON对象不是数组?

{ 
"strings": { 
    "keyone": "abc", 
    "keytwo": "def", 
    } 
} 

使用C++,

const Json::Value strings = root["strings"]; 
for (int index = 0; index < strings.size(); index++) 
{ 
    std::cout << strings.isArray() << std::endl; 
    std::cout << strings.get(index, "ERROR") << std::endl; 
} 

strings.IsArray()返回0,说这是不是一个数组。而第二行strings.get(index, "ERROR)",执行时只是崩溃,可能是因为我不使用它时就像一个数组。

所以我假设字符串只是一个字符串,而不是一个数组。我怎样才能使它成为一个数组对象?

+1

您使用的是什么JSON库? – 2012-07-07 02:11:17

+2

为什么**不**以上的JSON包含JSON数组? JSON类型(数组,对象,字符串等)都是独特的,不会“共享”祖先(与JavaScript数组和JavaScript对象不同)。大多数实现倾向于这样*不允许将JSON对象视为JSON数组(并且这样做实际上会违反此类结构的JSON保证)。 – 2012-07-07 02:21:58

+0

@AndréCaron我正在使用JsonCpp。 – 2012-07-07 02:24:32

回答

3

“strings.IsArray()” 返回0,表示这不是一个数组

当然它中,"strings":{ ... }是JSON术语 “对象”。

相关问题