尝试用JSON编写函数,在函数调用中得到“Unexpected token”

时间:2016-03-17 14:23:02

标签: javascript json

我了解到你可以在JSON文件中编写函数,但我一直遇到SELECT LISTAGG(CAST(U.name AS VARCHAR2(10)),', ') WITHIN GROUP(ORDER BY NLSSORT(U.name,'NLS_SORT=polish')) FROM users U WHERE(U.birth_date BETWEEN :date1 AND :date2); 错误。这是我在下面使用的JSON:

unexpected token

JSONLint给了我一个更详细的错误,但我不确定我是否可以关注这里发生的事情:

[

    {
        "thumb": "./templates/scripts/thumbs/01.jpg",
        "get": function() {
            console.log('mthood');
        },
        "title": "Mt. Hood Sunset",
        "desc": "A relaxing view of Mt. Hood, Oregon."
    },
    {
        "thumb": "./templates/scripts/thumbs/02.jpg",
        "get": function() {
            console.log('misty');
        },
        "title": "Misty Rainforest",
        "desc": "Leafy and wet at the same time. "
    },
    {
        "thumb": "./templates/scripts/thumbs/03.jpg",
        "get": function() {
            console.log('clouds');
        },
        "title": "Clouds",
        "desc": "Blue skies and white clouds."
    }

]

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

您无法向JSON添加函数,只能添加静态数据,如数组,字符串,数字或布尔值。

答案 1 :(得分:2)

JSONLint将JSON整体验证,而不是JavaScript定义的JSON。 JavaScript对象虽然看起来像JSON,但它们不是JSON。 JSON不允许函数,因为JSON是一种数据交换格式,如XML。您的代码有效,您可以在Chrome中打开您的开发者控制台并对其进行测试,但它不是有效的JSON。

答案 2 :(得分:2)

  

“我了解到你可以在JSON文件中使用函数”。

它没有标准化,你在哪里读到的? JSON只接受7 primitive types:

  • 阵列
  • 布尔
  • 整数
  • 物体
  • 字符串