JSON元素可以以 - 开头并在javascript中引用吗?

时间:2015-07-27 14:34:18

标签: javascript jquery json

所以我有一个自动从xml文件转换的JSON,所有元素都以' - '开头。例如,name就是-name。

下面是示例代码:

 "Object": {
          "-color": "0xAAAAAA",
          "-lineSize": "4",
          "-letterSymbol": "L"
}

假设对象位于js中的变量对象中。有没有办法打电话 - >  object.-color为了获得颜色?这种方法不起作用,但有没有其他选择或我需要更改JSON对象?

2 个答案:

答案 0 :(得分:5)

改为使用括号表示法:

def approve
  @approval = RegistryRequest.find(params[:id])
  if @approval.update_attribute(:approved_at, Time.now)
    flash[:notice] = "The vehicle was approved for the Registry."
    redirect_to request.referer
  else
    flash[:error] = "There was an error approving the vehicle. Please try again."
  end
end 

正如您所发现的,带有object["-color"] 或其他符号的键会混淆javascript解析器。因此,除非您的密钥是完全字母数字,否则您将需要使用括号表示系统。

另外,如果您需要"向下钻取"然后你可以这样做:

-

答案 1 :(得分:2)

是的,这是有效的JSON,所以要回答标题中的问题,是的,名称可以以-开头。根据{{​​3}},名称是一个字符串,它被定义为(部分)由"任何UNICODE字符" s组成。

要在您的情况下访问它,您需要使用括号表示法,而不是点符号:

object["-color"]