使用Javascript解析消息

使用Javascript解析消息,javascript,json,parsing,Javascript,Json,Parsing,我通过web套接字连接到一个服务,该服务为发生的某些事件发送消息 我接收以下格式的邮件: scope("unique_id_01").spot.occupied=false 如何解析此消息以提取值(在本例中为false) 注: 服务API文档提到这些消息是可评估的JavaScript消息,而不是JSON格式 该服务还发送另一条消息,格式如下: scope("scope_abcd-01").zone.event({"id":"abcd-02","occupied":true,"timestamp

我通过web套接字连接到一个服务,该服务为发生的某些事件发送消息

我接收以下格式的邮件:

scope("unique_id_01").spot.occupied=false
如何解析此消息以提取值(在本例中为false)

注:
服务API文档提到这些消息是可评估的JavaScript消息,而不是JSON格式

该服务还发送另一条消息,格式如下:

scope("scope_abcd-01").zone.event({"id":"abcd-02","occupied":true,"timestamp":"2015-01-13T09:13:55.644Z", ..otherData});
事件(..)字段中的文本是有效的json字符串。为了解析上述事件,我使用了以下代码:

var scope = function (scopeKey) {
    var result = {
        zone: {
            event: function (jsonMsg) {
                console.log("Scope : " + scopeKey + " id : " + jsonMsg.id);
                // use the json
            }
        }
    };
    return result;
};

eval(message received from websocket);
在将其传递给eval之前,我还验证了它是有效和真实的响应


如何解析我收到的两条消息

使用正则表达式提取相关值:

var messageFromServer = 'scope("unique_id_01").spot.occupied=false';

var matches = /^scope\("(.*)"\)\.spot\.occupied=(.*)$/.exec(messageFromServer);
if(matches){    
    console.log(matches[1]); //'unique_id_01'
    console.log(matches[2]); //'false'   
}

使用捕获组以动态内容为目标。这里的所有匹配项仍然是字符串-JSON。解析您知道的包含有效JSON的匹配项。

这些服务器消息是字符串?@overstand:是的,这些是字符串。我正在考虑使用正则表达式进行解析,但服务的文档提到要评估的消息,因此认为最好不要使用正则表达式。有什么建议/意见吗?服务是否为您提供功能定义?