我注意到您无法在JSON中保存1B
(转义)以保存JSON.parse函数,您将得到SyntaxError: Unexpected token
(在Google chrome中),需要将其写为unicde \u001b
。我在Python中编写了json_serialize函数,我还需要转义字符串中的其他哪些字符?这是我的python函数
def json_serialize(obj):
result = ''
t = type(obj)
if t == types.StringType:
result += '"%s"' % obj.replace('\\', '\\\\').replace('"', '\\"').replace('\n', '\\n').replace('\t', '\\t')
elif t == types.NoneType:
result += 'null'
elif t == types.IntType or t == types.FloatType:
result += str(obj)
elif t == types.LongType:
result += str(int(obj))
elif t == types.TupleType:
result += '[' + ','.join(map(json_serialize, list(obj))) + ']'
elif t == types.ListType:
result += '[' + ','.join(map(json_serialize, obj)) + ']'
elif t == types.DictType:
array = ['"%s":%s' % (k,json_serialize(v)) for k,v in obj.iteritems()]
result += '{' + ','.join(array) + '}'
else:
result += '"unknown type - ' + type(obj).__name__ + '"'
return result
参考方案
我发现我需要转义所有<32的控制字符。这是我的转义功能:
def escape(str):
str = str.replace('\\', '\\\\').replace('"', '\\"').replace('\n', '\\n').
replace('\t', '\\t')
result = []
for ch in str:
n = ord(ch)
if n < 32:
h = hex(n).replace('0x', '')
result += ['\\u%s%s' % ('0'*(4-len(h)), h)]
else:
result += [ch]
return ''.join(result)
Javascript和Python JSON-未定义变量 - javascript例如,如果您具有以下JSON对象(删除python的分号):values = { a: 1, b: { c: 2, d: { e: 3 } }, f: 4, g: 5 }; 如果您尝试在JS中打印values,它将正常工作。但是在Python中,它将返回错误NameError: name 'a' is not defined,这意味着未定…
PHP json_encode数组到javascript关联数组 - javascript我有一些从PHP中读取的mysqli列。它正在完美地获取和回显。$results = mysqli_fetch_assoc(mysqli_query($conn, $querystring)); echo json_encode($results); //$results = {"title":"Sea Shells"…
Javascript IF语句 - javascript嗨,我有这段代码可以正常工作,并将两个日历显示为一个日历。我还有一个php变量$login_session,其中包含登录电子邮件地址的用户。关于如何显示[email protected]日历的任何想法(伪代码)IF $login_session == "[email protected]…
提交初始化后删除某些帖子数据 - javascript在初始化提交之后但在将数据发送到处理页面之前,是否可以过滤$ _POST表单数据?我想象过程的方式:提交->收集$ _POST数据->发送数据我想做的事:提交->收集$ _POST数据->删除某些元素->发送数据这样就不必更改处理页面以过滤掉不希望接收的元素了吗? javascript大神给出的解决方案 当然可以,您可以在JS …
json.dump不将python列表转换为JS数组 - javascript当我尝试将python列表传递给模板中的JavaScript时,它没有按预期将列表解析为JS数组,而是返回此["Groceries", "Clothing", "Takeaways", "Alcohol"]导致页面中…