JavaScript 将字符串转换为 json 对象

标签 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))

我做错了什么?

最佳答案

实际上,您根本不需要 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))

关于JavaScript 将字符串转换为 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32040834/

相关文章:

javascript - React 元素和粗箭头函数

javascript - 每第三次迭代后中断循环

json - Azure 逻辑应用对 SQL 行的 HTTP 响应正文

json - REST API - 包含相关的对象详细信息或仅包含 ID

javascript - 如何计算 Angular 2+ 中表格列的总和?

javascript - 在插入数据库之前删除数组的重复值

javascript - 无法在循环中更新 json 值

javascript - 使用 Javascript 订购 JSON

javascript - 动态创建嵌套的 Javascript 对象

javascript - 无法将 React Native View 放在底部