URL에 GET 변수로 전달해야하는 "심층"JSON 문자열이 있습니다. jQuery.param
사용하여 인코딩 할 때parse decodeURIComponent Python을 사용하는 JSON 문자열
{
"meta": {
"prune": true,
"returnFields": ["gf", "gh", "gh", "rt"],
"orient": "split"
},
"indicators": [{
"type": "beta",
"computeOn": "gf",
"parameters": {
"timeperiod": 5,
"nbdevup": 2,
"nbdevdn": 2,
"matype": 0
}
}, {
"type": "alpha",
"computeOn": "gf",
"parameters": {
"timeperiod": 30
}
}]
};
는, 결과는 다음과 같다 : 그것은 다음과 같은 단지 직렬화를 사용하는 경우
var recursiveDecoded = decodeURIComponent(jQuery.param(body));
console.log(recursiveDecoded);
meta[prune]=true&meta[returnFields][]=gf&meta[returnFields][]=gh&meta[returnFields][]=gh&meta[returnFields][]=rt&meta[orient]=split&indicators[0][type]=beta&indicators[0][computeOn]=gf&indicators[0][parameters][timeperiod]=5&indicators[0][parameters][nbdevup]=2&indicators[0][parameters][nbdevdn]=2&indicators[0][parameters][matype]=0&indicators[1][type]=alpha&indicators[1][computeOn]=gf&indicators[1][parameters][timeperiod]=30
다음에 디코딩
var recursiveEncoded = jQuery.param(body);
console.log(recursiveEncoded);
meta%5Bprune%5D=true&meta%5BreturnFields%5D%5B%5D=gf&meta%5BreturnFields%5D%5B%5D=gh&meta%5BreturnFields%5D%5B%5D=gh&meta%5BreturnFields%5D%5B%5D=rt&meta%5Borient%5D=split&indicators%5B0%5D%5Btype%5D=beta&indicators%5B0%5D%5BcomputeOn%5D=gf&indicators%5B0%5D%5Bparameters%5D%5Btimeperiod%5D=5&indicators%5B0%5D%5Bparameters%5D%5Bnbdevup%5D=2&indicators%5B0%5D%5Bparameters%5D%5Bnbdevdn%5D=2&indicators%5B0%5D%5Bparameters%5D%5Bmatype%5D=0&indicators%5B1%5D%5Btype%5D=alpha&indicators%5B1%5D%5BcomputeOn%5D=gf&indicators%5B1%5D%5Bparameters%5D%5Btimeperiod%5D=30
서버의 문자열 결과는 문자열을 키 값 쌍의 키로 유지합니다.
"query": {
"{\"meta\":{\"prune\":true,\"returnFields\":[\"gf\",\"gh\",\"gh\",\"rt\"],\"orient\":\"split\"},\"indicators\":[{\"type\":\"beta\",\"computeOn\":\"gf\",\"parameters\":{\"timeperiod\":5,\"nbdevup\":2,\"nbdevdn\":2,\"matype\":0}},{\"type\":\"alpha\",\"computeOn\":\"gf\",\"parameters\":{\"timeperiod\":30}}]}": ""
},
내 백엔드 프로세싱은 파이썬으로 처리됩니다. 위의 결과를 원래 개체와 비슷한 dict
으로 변환하는 모듈은 무엇입니까?
당신은 아마 JSON로 전송 한 후 파이썬의 객체로 직렬화 복원 더 나을 것입니다. 그런 식으로 덜 어지럽다. – haliphax
요구 사항은 GET 요청으로 전송하는 것입니다. 이미 JSON 문자열을 처리 할 수있는 POST 요청을 수행했습니다. –
'$ .param()'을 사용하지 않고 GET 메소드를 사용하여 jQuery에서 객체를 보낼 수 있습니다. 데이터가 서버에서 JSON으로 끝나는 지 확인하면 AJAX 요청의 결과로 정상이어야합니다. 최악의 경우,'dataType'을''json''으로 설정해야합니다. – PHPglue