转义JSON对象中的符号

问题描述

我有这个JSON对象

{'zone1': [{'detected_people': {'coordinates': [[21,0],[16,4],[23,[21,6],21]]},'gridOrigin': [28.5,20.6],'gridScale': 0.5,'gridSizeX': 50,'gridSizeY': 50,'stamp': '2020-08-28 21:06:48','zoneID': 'shop1'}]}

我无法提交到Web服务数据库。 我的服务器端建议我使用escape the symbols

我正在使用jsoncpp创建JSON对象,如下所示。

struct JSON_PEOPLE{
   //Json::Value root;
   Json::Value zone_1;   
   Json::Value zone_2;
   Json::Value zone1;   
   Json::Value zone2;
   Json::Value coord;
   Json::Value gridOrigin;
   
   JSON_PEOPLE(){
     zone1["zoneID"] = "shop1";
     zone1["stamp"] = "##########";
     zone1["gridSizeX"]=50;
     zone1["gridSizeY"]=50;
     zone1["gridScale"]=0.5;
     zone1["gridOrigin"].append(28.5);
     zone1["gridOrigin"].append(20.6);
     

     zone2["zoneID"] = "shop2";
     zone2["stamp"] = "##############";
     zone2["gridSizeX"]=50;
     zone2["gridSizeY"]=50;
     zone2["gridScale"]=0.5;
     zone2["gridOrigin"].append(35.5);
     zone2["gridOrigin"].append(40.6);
   }
}

如何转义符号?

解决方法

我有正确的JSON字符串。

{
    "zone1" : 
    [
        {
            "detected_people" : 
            {
                "coordinates" : 
                [
                    [
                        22,3
                    ],[
                        21,6
                    ],[
                        16,21
                    ]
                ]
            },"gridOrigin" : 
            [
                28.5,20.600000000000001
            ],"gridScale" : 0.5,"gridSizeX" : 50,"gridSizeY" : 50,"stamp" : "2020-08-28 22:23:05","zoneID" : "shop1"
        }
    ]
}

当转换为JSON对象时,我必须做json_obj = json.dumps(json.loads(info))。所以我有正确的双引号。