是否有一种方法让我搜索JSON数组向后使用正则表达式


Is there a way for me to search a JSON array backwards using regex?

我有一个这样设置的字符串。这是一个JSON字符串,以以下格式存储数据:

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

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

正则表达式?不。到此为止

你能做的是首先将数据平铺,或者首先将其平铺。

[{
 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);