From e1dbd84e697445ea0c5f73075f56f97e5849ae53 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 08 三月 2019 14:58:15 +0800
Subject: [PATCH] 6328 【后端】优化代码eval - json只适合字符串序列化,并且尽量用于非中文;建议使用cPickle 的dumps 和loads,协议用2,可支持所有类型,缺点为序列化后不可阅读

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py |   11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
index b83b6f9..f9af576 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
@@ -50,8 +50,7 @@
 import CrossBoss
 
 import time
-import json
-
+import cPickle
 
 '''
 ShareDefine.Def_UniversalGameRecType_BossInfo
@@ -722,7 +721,7 @@
         bossid = str(bossid)
         if playerid in self.bossAttentionDict:
             bossAttentionData = self.bossAttentionDict[playerid]
-            recordDict = json.loads(bossAttentionData.RecordData)
+            recordDict = cPickle.loads(bossAttentionData.RecordData)
             if isAdd:
                 recordDict[bossid] = isAdd
             else:
@@ -733,7 +732,7 @@
                 self.bossAttentionDict.pop(playerid)
                 
             else:
-                bossAttentionData.RecordData = json.dumps(recordDict, ensure_ascii=False)
+                bossAttentionData.RecordData = cPickle.dumps(recordDict, 2)
                 bossAttentionData.DataLen = len(bossAttentionData.RecordData)
         else:
             if not isAdd:
@@ -741,7 +740,7 @@
             bossAttention = PyGameDataStruct.tagDBPyBossAttention()
             bossAttention.clear()
             bossAttention.PlayerID = playerid
-            bossAttention.RecordData = json.dumps({bossid:isAdd}, ensure_ascii=False)
+            bossAttention.RecordData = cPickle.dumps({bossid:isAdd}, 2)
             bossAttention.DataLen = len(bossAttention.RecordData)
             self.bossAttentionDict[playerid] = bossAttention
         
@@ -755,7 +754,7 @@
         attentionData = self.bossAttentionDict.get(curPlayer.GetPlayerID())
         if not attentionData:
             return
-        bttentionDict = json.loads(attentionData.RecordData)
+        bttentionDict = cPickle.loads(attentionData.RecordData)
         packData = ChPyNetSendPack.tagGCBossAttentionInfo()
         packData.BossList = []
         for bossid, addState in bttentionDict.items():

--
Gitblit v1.8.0