JavaScript将字符串转换为json对象

时间:2015-08-16 23:11:57

标签: javascript json

所以,我有这个函数可以获得一个JSON对象,但我想让它更简单,所以我创建了一个函数来获取JSON对象的值。为什么它不起作用?



var itemData = {
    weapon: function () {
        return {
            1: {
                'name': 'Dagger',
                    'extra_skill': 'none',
                    'cost': 500,
                    'attack': 5
            },
            2: {
                'name': 'Pickaxe',
                    'extra_skill': 'mining',
                    'cost': 25,
                    'attack': 5
            }
        }
    },
    getWeapon: function (value, x) {
        var obj = JSON.parse(value);
        return itemData.weapon()[x].obj
    }
}

// outputs: Dagger
console.log(itemData.weapon()[1].name)

// Get the name of weapon 1
// however, it outputs: Uncaught SyntaxError: Unexpected token a
console.log('Getting weapon... ' + itemData.getWeapon('name', 1))




我做错了什么?

1 个答案:

答案 0 :(得分:5)

你实际上根本不需要JSON解析来实现这一点,因为你无处可去,你需要解析一个JSON字符串。

这是一个有效的例子:



var itemData = {
    weapon: function () {
        return [
            {
                'name': 'Dagger',
                    'extra_skill': 'none',
                    'cost': 500,
                    'attack': 5
            },
            {
                'name': 'Pickaxe',
                    'extra_skill': 'mining',
                    'cost': 25,
                    'attack': 5
            }
        ];
    },
    getWeapon: function (value, x) {
        return itemData.weapon()[x][value];
    }
}

// outputs: Dagger
console.log(itemData.weapon()[0].name)

// outputs: Getting weapon... Pickaxe
console.log('Getting weapon... ' + itemData.getWeapon('name', 1))