Json 字符串中有斜杠

Json with slash in string

我在从JSON中获取数据时遇到了一点问题,实际上可以获取一些数据,但是当您出现“/_string”时脚本错误。

示例:

JSON

"results":[{
price_value_prices: 15.05
price_value_prices/_currency: "USD"
price_value_prices/_source: ".05" 
}];

AJAX

$.ajax({
  type: 'GET',
  url: $url,
  dataType: 'json',
  success: function (data) {
    data.results[$n].price_value_prices/_sources
  }
});

控制台日志输出

_sources is not defined

我该如何解决这个问题?

首先,如果字段名称左侧没有引号,您的 JSON 无效,因此请将其更改为:

"results":[{
  "price_value_prices": 15.05
  "price_value_prices/_currency": "USD"
  "price_value_prices/_source": ".05" 
}]

然后使用 [] 运算符访问它。

data.results[$n]["price_value_prices/_sources"]

您不能使用 /,因为它是另一个运算符。如果您的字段名称中有 /.,使用 [] 运算符是明智的。

您的JSON在四种不同的方面是无效的:

  1. 您在任何对象初始值设定项之外都有一个 属性 初始值设定项。

  2. 属性 键必须在 JSON.

  3. 中用双引号括起来
  4. 对象中的属性之间必须有逗号。

  5. 你的结尾有一个;

#2 将解决您的 / 问题。

这是一个有效的版本:

{
    "results": [{
        "price_value_prices": 15.05,
        "price_value_prices/_currency": "USD",
        "price_value_prices/_source": ".05"
    }]
}

假设您对其进行解析并将结果分配给 obj,您可以使用括号表示法和引号(任何类型)访问 price_value_prices/_currency

console.log(obj.results[0]["price_value_prices/_currency"]);
console.log(obj.results[0]['price_value_prices/_currency']);

注意 results 之后的 [0],因为它是一个只有一个条目的数组。