JavaScript将字符串转换为json对象

Zen*_*eng 0 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))
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Max*_*ter 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))
Run Code Online (Sandbox Code Playgroud)