有没有办法让我使用正则表达式向后搜索JSON数组?

时间:2016-09-22 00:10:23

标签: javascript php json regex

所以我设置了一个像this这样的字符串。这是一个JSON字符串,以这种格式存储数据:

{
    "players": {
        <playerID>: {
            "presets": [{
                "title": <title>,
                "presetId": <id>,
                "preset": {<presetData>},
                "votes": <voteCount>,
                "date": <creationDate>
            }]
        }
}

我希望能够输入presetId,并获得playerId作为输出(基本上找出哪个玩家具有该ID的预设)。同样的事情可以通过循环每个玩家和每个玩家的预设来实现,并查看该预设是否具有正确的ID,但我需要做很多事情,我觉得这将是相当昂贵的。正则表达式会更好吗?我会用什么样的表达方式?

1 个答案:

答案 0 :(得分:0)

正则表达式?不,就在那里停下来。

您可以做的是首先展平数据,或者首先将数据平放。

[{
 playerId: ...,
 ...
 presetId: ...,
},{
 playerId: ...,
 ...
 presetId: ...,
}]

假设预设ID是唯一的,您可以轻松使用array.filterarray.find

var players = flatData.filter(player => player.presetID === ID_TO_FIND);

// or

var player = flatData.find(player => player.presetID === ID_TO_FIND);