jQuery . getjson和转义字符
jQuery .getJSON and escape character
我调用。getjson,响应是一个JSON字符串,有很多'"字符。在chrome上启动页面时,回调不会触发。我读到它不会触发,因为JSON字符串不是JSON验证。(尽管它通过了JSONLint测试)。
在eclipse的内置web浏览器中启动页面时,回调会触发,因此我可以向您展示响应:
{"merchants": ["{'"loyaltyLevel'": 3, '"distance'": 100.5, '"imageUrl'": '"http://1.bp.blogspot.com/-hY-Kri63wzs/TeHzpxJ2BJI/AAAAAAAAA4Q/pmq2Yvki8WY/s1600/funny-dog-picture-ass.jpg'", '"name'": '"Papa Kapa'", '"credit'": 25000}", "{'"loyaltyLevel'": 3, '"distance'": 100.5, '"imageUrl'": '"http://1.bp.blogspot.com/-hY-Kri63wzs/TeHzpxJ2BJI/AAAAAAAAA4Q/pmq2Yvki8WY/s1600/funny-dog-picture-ass.jpg'", '"name'": '"Papa Kapa'", '"credit'": 25000}", "{'"loyaltyLevel'": 3, '"distance'": 100.5, '"imageUrl'": '"http://1.bp.blogspot.com/-hY-Kri63wzs/TeHzpxJ2BJI/AAAAAAAAA4Q/pmq2Yvki8WY/s1600/funny-dog-picture-ass.jpg'", '"name'": '"Papa Kapa'", '"credit'": 25000}", "{'"loyaltyLevel'": 3, '"distance'": 100.5, '"imageUrl'": '"http://1.bp.blogspot.com/-hY-Kri63wzs/TeHzpxJ2BJI/AAAAAAAAA4Q/pmq2Yvki8WY/s1600/funny-dog-picture-ass.jpg'", '"name'": '"Papa Kapa'", '"credit'": 25000}", "{'"loyaltyLevel'": 3, '"distance'": 100.5, '"imageUrl'": '"http://1.bp.blogspot.com/-hY-Kri63wzs/TeHzpxJ2BJI/AAAAAAAAA4Q/pmq2Yvki8WY/s1600/funny-dog-picture-ass.jpg'", '"name'": '"Papa Kapa'", '"credit'": 25000}"]}
我做了一些调试,确实Javascript不会jsonParse这个
任何想法?
下面是我的代码: <!DOCTYPE html>
<html>
<head>
<style>img{ height: 100px; float: left; }</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div id="images">
</div>
<script>
$.getJSON("some_url",
function(data)
{
alert("success");
});
</script>
</body>
</html>
服务器端代码:
import logging
log = logging.getLogger(__name__)
import appcardrestapi.Errors
import sys
from pyramid.view import view_config
from pyramid.httpexceptions import HTTPUnauthorized, HTTPBadRequest
from appcardrestapi.BL.usermanagement import UserObj
class merchant():
def __init__(self,name,imageUrl,loyaltyLevel,distance,credit):
self.name = name
self.imageUrl = imageUrl
self.loyaltyLevel = loyaltyLevel
self.distance = distance
self.credit = credit
def getJson(self):
import json
return json.dumps({'name':self.name, 'imageUrl':self.imageUrl,'loyaltyLevel':self.loyaltyLevel,'distance':self.distance,'credit':self.credit})
@view_config(route_name='GetMyMerchantsList', renderer='json')
def GetMyMerchantsList(request):
rc = True
#
# Make sure got here with proprt JSON body, if not log and go home
#
try:
log.debug('+ %s()', sys._getframe().f_code.co_name)
#jsonBody = json.loads(request.GET)
# Check authentication token
authenticationToken = request.GET.getone('authenticationToken')
token = authenticationToken.encode('ascii', 'ignore')
user = UserObj.User(authenticationToken=token)
rc, errorMsg = user.ValidateTokenAndLoadUser(request)
import json
if True == rc:
location = request.GET.getone('location').encode('ascii', 'ignore')
i = 0
merchants = []
while i < 5 :
m = merchant('Papa Kapa','http://1.bp.blogspot.com/-hY-Kri63wzs/TeHzpxJ2BJI/AAAAAAAAA4Q/pmq2Yvki8WY/s1600/funny-dog-picture-ass.jpg',3,100.5,25000)
print m.getJson()
merchants.append(m.getJson())
i = i + 1
response = json.dumps({'merchants':merchants})
return response
except Exception as e:
print e
errorMsg = appcardrestapi.Errors.InvalideJsonPassed
log.error(' %s(%s)' % (sys._getframe().f_code.co_name, errorMsg))
rc = False
import json
response = json.dumps({'Error':errorMsg})
return response
我看到你json lint响应
"{'"loyalty
为什么你有第一个" ?
按照
行"{'"loyaltyLevel'": 3, '"distance'": 100.5
你会发出->
"{"loyaltyLevel": 3, "distance": 100.5
所以我问为什么第一个是" ?
编辑:
我明白你为什么把"放在开头
将其视为字符串....
类似这样:
"{"loyaltyLevel": 3,....}",
你应该去掉周围的"
,把它当作一个对象。
这是下面给出的实际JSON。它正在被正确解析,所有变量也都可以访问。
{
"merchants": [
{
"loyaltyLevel": 3,
"distance": 100.5,
"imageUrl": "http://1.bp.blogspot.com/-hY-Kri63wzs/TeHzpxJ2BJI/AAAAAAAAA4Q/pmq2Yvki8WY/s1600/funny-dog-picture-ass.jpg",
"name": "Papa Kapa",
"credit": 25000
},
{
"loyaltyLevel": 3,
"distance": 100.5,
"imageUrl": "http://1.bp.blogspot.com/-hY-Kri63wzs/TeHzpxJ2BJI/AAAAAAAAA4Q/pmq2Yvki8WY/s1600/funny-dog-picture-ass.jpg",
"name": "Papa Kapa",
"credit": 25000
},
{
"loyaltyLevel": 3,
"distance": 100.5,
"imageUrl": "http://1.bp.blogspot.com/-hY-Kri63wzs/TeHzpxJ2BJI/AAAAAAAAA4Q/pmq2Yvki8WY/s1600/funny-dog-picture-ass.jpg",
"name": "Papa Kapa",
"credit": 25000
},
{
"loyaltyLevel": 3,
"distance": 100.5,
"imageUrl": "http://1.bp.blogspot.com/-hY-Kri63wzs/TeHzpxJ2BJI/AAAAAAAAA4Q/pmq2Yvki8WY/s1600/funny-dog-picture-ass.jpg",
"name": "Papa Kapa",
"credit": 25000
},
{
"loyaltyLevel": 3,
"distance": 100.5,
"imageUrl": "http://1.bp.blogspot.com/-hY-Kri63wzs/TeHzpxJ2BJI/AAAAAAAAA4Q/pmq2Yvki8WY/s1600/funny-dog-picture-ass.jpg",
"name": "Papa Kapa",
"credit": 25000
}
]
}
使用jsonlinto验证它。如果它是从url返回的,它应该是可见的。
相关文章:
- 在JavaScript中输出转义字符
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- 带有Ajax请求的Javascript JSON.parse函数n〃;新行转义字符
- Php在csv输出文件中插入转义字符
- TinyMCE 3.x仅在IE中转义字符
- 如何使用Javascript为JSON转义字符
- 带有转义字符的Javascript子字符串
- 包括一个带有innerHTML转义字符的脚本
- 替换转义字符中的单个反斜杠
- innerhtml 忽略了 HTML 转义字符
- 如何从 JSON 字符串中删除转义字符
- 将带有转义字符和 ASCII 值的字符串转换为十六进制
- 动态向 jQuery 变量添加转义字符
- JavaScript 单引号和双引号中的转义字符
- JavaScript - 如何使用转义字符构建字符串
- Javascript JSON 返回带有未转义字符的错误
- 正则表达式用于解析带有转义字符的字符串
- AngularJS中$interpolate内字符串的转义字符是什么
- 灰尘.js转义字符
- jQuery . getjson和转义字符