【问题标题】:Json with slash in string字符串中带有斜线的 Json
【发布时间】:2016-03-26 01:01:41
【问题描述】:

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

示例:

JSON

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

AJAX

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

控制台日志输出

_sources is not defined

我该如何解决这个问题?

【问题讨论】:

标签: javascript jquery json slash


【解决方案1】:

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

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

然后使用[] 操作符访问它。

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

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

【讨论】:

    【解决方案2】:

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

    1. 您在任何对象初始化程序之外都有一个属性初始化程序。

    2. JSON 中的属性键必须用双引号括起来。

    3. 对象的属性之间必须有逗号。

    4. 你有一个;在它的末尾。

    #2 将解决您的/ 问题。

    这是一个有效的版本:

    {
        "results": [{
            "price_value_prices": 15.05,
            "price_value_prices/_currency": "USD",
            "price_value_prices/_source": "$15.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],因为它是一个包含单个条目的数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 2013-06-25
      • 1970-01-01
      相关资源
      最近更新 更多