关于json返回的格式的不标准疑问
正常的json返回的格式不应该是像这样:
{ "firstName": "John", "lastName": "Smith", "male": true, "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] }
但是禅道返回的会多转义符
就像这样 注意data部分 都多了转义符:
{"status":"success","data":"{\"title\":\"TASK#864 \\u65b0\\u624b\\u6307\\u5f15\\u6d4b\\u8bd5\\u7528\\u4f8b1 \\\/ rush2012\",\"project\":{\"id\":\"30\",\"company\":\"1\",\"isCat\":\"0\",\"catID\":\"0\",\"type\":\"sprint\",\"parent\":\"0\",\"name\":\"rush2012\",\"code\":\"rush2012\",\"begin\":\"2012-08-27\",\"end\":\"2012-12-31\",\"days\":\"127\",\"status\":\"doing\",\"statge\":\"1\",\"pri\":\"1\",\"desc\":\"\",\"goal\":\"\",\"openedBy\":\"\",\"openedDate\":\"0\",\"closedBy\":\"\",\"closedDate\":\"0\",\"canceledBy\":\"\",\"canceledDate\":\"0\",\"PO\":\"\",\"PM\":\"\",\"QD\":\"\",\"RD\":\"\",\"team\":\"soft\",\"acl\":\"open\",\"whitelist\":\"\",\"order\":\"0\",\"deleted\":\"0\",\"totalHours\":\"889\",\"totalEstimate\":0,\"totalConsumed\":4,\"totalLeft\":12},\"task\":{\"id\":\"864\",\"company\":\"1\",\"project\":\"30\",\"module\":\"0\",\"story\":\"48\",\"storyVersion\":\"48\",\"fromBug\":\"60\",\"name\":\"\\u65b0\\u624b\\u6307\\u5f15\\u6d4b\\u8bd5\\u7528\\u4f8b1\",\"type\":\"devel\",\"pri\":\"3\",\"estimate\":\"0\",\"consumed\":\"0\",\"left\":\"0\",\"deadline\":\"0000-00-00\",\"status\":\"doing\",\"statusCustom\":\"6\",\"mailto\":\"\",\"desc\":\"\\u89e3\\u51b3:#060<\\\/a>\\n\",\"openedBy\":\"demo\",\"openedDate\":\"2013-03-17 21:58:03\",\"assignedTo\":\"demo\",\"assignedDate\":\"\",\"estStarted\":\"0000-00-00\",\"realStarted\":\"2013-03-18\",\"finishedBy\":\"\",\"finishedDate\":\"\",\"canceledBy\":\"\",\"canceledDate\":\"\",\"closedBy\":\"\",\"closedDate\":\"\",\"closedReason\":\"\",\"lastEditedBy\":\"demo\",\"lastEditedDate\":\"2013-03-18 15:26:28\",\"deleted\":\"0\",\"storyID\":\"48\",\"storyTitle\":\"\\u65b0\\u624b\\u6307\\u5f15\",\"latestStoryVersion\":\"1\",\"storyStatus\":\"closed\",\"assignedToRealName\":\"demo\",\"files\":[],\"needConfirm\":false},\"actions\":{\"59668\":{\"id\":\"59668\",\"company\":\"1\",\"objectType\":\"task\",\"objectID\":\"864\",\"product\":\",12,\",\"project\":\"30\",\"actor\":\"demo\",\"action\":\"opened\",\"date\":\"2013-03-17 21:58:03\",\"comment\":\"\",\"extra\":\"\",\"read\":\"1\",\"efforted\":\"0\",\"history\":[]},\"59859\":{\"id\":\"59859\",\"company\":\"1\",\"objectType\":\"task\",\"objectID\":\"864\",\"product\":\",12,\",\"project\":\"30\",\"actor\":\"demo\",\"action\":\"assigned\",\"date\":\"2013-03-18 15:21:46\",\"comment\":\"\",\"extra\":\"demo\",\"read\":\"1\",\"efforted\":\"0\",\"history\":[{\"id\":\"11620\",\"company\":\"1\",\"action\":\"59859\",\"field\":\"assignedTo\",\"old\":\"\",\"new\":\"demo\",\"diff\":\"\"}]},\"59865\":{\"id\":\"59865\",\"company\":\"1\",\"objectType\":\"task\",\"objectID\":\"864\",\"product\":\",12,\",\"project\":\"30\",\"actor\":\"demo\",\"action\":\"started\",\"date\":\"2013-03-18 15:26:28\",\"comment\":\"\",\"extra\":\"\",\"read\":\"1\",\"efforted\":\"0\",\"history\":[{\"id\":\"11621\",\"company\":\"1\",\"action\":\"59865\",\"field\":\"realStarted\",\"old\":\"0000-00-00\",\"new\":\"2013-03-18\",\"diff\":\"\"},{\"id\":\"11622\",\"company\":\"1\",\"action\":\"59865\",\"field\":\"status\",\"old\":\"wait\",\"new\":\"doing\",\"diff\":\"\"},{\"id\":\"11623\",\"company\":\"1\",\"action\":\"59865\",\"field\":\"statusCustom\",\"old\":\"1\",\"new\":\"6\",\"diff\":\"\"}]}},\"users\":{\"\":\"\",\"100001\":\"100001\",\"100002\":\"100002\",\"111\":\"1\",\"111111111111113\":\"111111111111113\",\"112233\":\"112233\",\"12111\":\"1\",\"123\":\"123\",\"123456\":\"\\u8463\\u5148\\u751f\",\"2343xdfd_ff\":\"\\u5730\\u65b9\\u901f\\u5ea6\",\"234567\":\"234567\",\"555555\":\"5555\",\"777777\":\"\\u65b0\\u95fb\\u7f51\",\"aaa\":\"aa\",\"aaaaaaaa\":\"aaaaaaaa\",\"aaaaaaaaa\":\"aaaaaaaaa\",\"aahsdd\":\"viking\",\"Admin\":\"\\u738b\\u8c46\\u8c46\",\"Alice\":\"Alice\",\"asdf\":\"\\u963f\\u65af\\u8482\\u82ac\\u5927\\u5927\\u5927\",\"A_123\":\"testerA\",\"bbc\":\"bbc\",\"cathy\":\"cathy\",\"cehua\":\"\\u7b56\\u5212\",\"ceshi21\":\"ceshi21\",\"chai\":\"chaiyuxiang\",\"chc\":\"\\u4e1c\\u65b9\\u7ea2\",\"chenxiao\":\"\\u9648\\u8427\",\"china\":\"\\u4e2d\\u56fd\",\"cmn\":\"cmncmn\",\"daidai\":\"kangkang\",\"dddd\":\"ff\",\"demo\":\"demo\",\"demo11\":\"Nisha\",\"demo111\":\"demo111\",\"demoni\":\"lkjie\",\"demoyuan\":\"sdfwet\",\"dev1\":\"\\u5f00\\u53d1\\u4eba\\u5458\",\"dev2\":\"\\u5f00\\u53d1\\u4e59\",\"dev3\":\"\\u5f00\\u53d1\\u4e19\",\"diccn\":\"diccn\",\"dodolift\":\"owen\",\"dy123\":\"\\u8463\\u59da\",\"dy1234\":\"dy1234\",\"dy123456\":\"\\u8463\\u59da\",\"eling\":\"Eling Yu\",\"er2\":\"2\",\"fdafds\":\"\\u9707\",\"flower\":\"\\u9648\\u518d\\u987a\",\"Guss\":\"GUSS\",\"guss123\":\"guss123\",\"hbj\":\"bj\",\"hehe\":\"hehe\",\"ikemen\":\"\\u7231\\u5356\\u840c\\u6ef4\\u5c0f\\u5e05\\u54e5\",\"iyaya\":\"\\u54ce\\u5440\\u5440\",\"jfdu\":\"\\u9a6c\\u592e\\u6674\",\"jiang\":\"lalal\",\"jiangtao\":\"\\u848b\\u9676\",\"jill\":\"CJ\",\"jim\":\"jim\",\"JIM1\":\"JIM1\",\"JIM2\":\"JIM2\",\"JIM3\":\"JIM3\",\"jinyuehui\":\"jjjjjj\",\"joyceyg\":\"jjjjjjjjjjj\",\"jyh\":\"joyce\",\"keke\":\"\\u5d14\\u67ef\\u67ef\",\"Kelvin\":\"Kelvin\",\"kingnod01\":\"Dean\",\"kingnod02\":\"gol\",\"kingnod03\":\"consultant\",\"leo\":\"\\u5229\\u5965\",\"liang\":\"\\u5468\\u660e\\u4eae\",\"lijiai\":\"lijiai\",\"lily\":\"\\u8389\\u8389\",\"lilyyr\":\"\\u674e\\u8389\",\"Lina\":\"\\u674e\\u5a1c\",\"lina1\":\"\\u674e\\u5a1c\",\"linaa\":\"\\u674e\\u5a1c\\u90a3\",\"liuliu\":\"liuliu\",\"liuqq\":\"\\u5218qq\",\"liuss\":\"\\u5218\\u8bd7\\u8bd7\",\"lixue\":\"\\u674e\\u96ea\",\"lizhenxing\":\"\\u674e\\u632f\\u5174\",\"luxun\":\"\\u9c81\\u8fc5\",\"mixue\":\"\\u7c73\\u96ea\",\"mmmmmm\":\"mmmmmm\",\"Monica\":\"Monica\",\"monicadq\":\"monicadq\",\"mzx\":\"\\u6885\\u5fd7\\u96c4\",\"Oliver_1\":\"lmxl\",\"osdev1\":\"\\u5f00\\u6e90\\u5f00\\u53d11\",\"pate\":\"Pate Liang\",\"patrick\":\"pat\",\"pm2013\":\"\\u9879\\u76ee\\u7ecf\\u74062013\",\"pm8888\":\"\\u9879\\u76ee\\u7ecf\\u74068888\",\"po1\":\"product owner\",\"productManager\":\"\\u4ea7\\u54c1\\u7ecf\\u7406\",\"projectManager\":\"\\u9879\\u76ee\\u7ecf\\u7406\",\"qaz\":\"qazwsx\",\"qian\":\"qianmengjia\",\"qq355667166\":\"\\u8042\\u5fd7\\u7ea2\",\"rd1\":\"\\u79fb\\u52a8\\u5e73\\u53f0\\u5f00\\u53d1\\u80051\",\"rd2\":\"\\u5e73\\u53f0\\u5206\\u6790\\u5f00\\u53d1\\u80052\",\"rd3\":\"\\u5e73\\u53f0\\u6570\\u636e\\u5f00\\u53d1\\u80053\",\"rd4\":\"WEB\\u5e73\\u53f0\\u5f00\\u53d1\\u80054\",\"rjpm\":\"rjpm\",\"RkD\":\"Bob\",\"rrr\":\"rrr\",\"rtt\":\"\\u70ed\",\"ruijianpm\":\"ruijianpm\",\"sadf\":\"dfgsdf\",\"san\":\"sans\",\"sdfasdfasdf\":\"asdfasdf\",\"Shawn\":\"\\u5fd7\\u96c4\",\"shineer\":\"sssssss\",\"shishin\":\"\\u5218\\u8bd7\\u8bd7\",\"shiyangyang\":\"shiyangyang\",\"sm1\":\"scrum master\",\"suki\":\"suki\",\"sunnan\":\"\\u5b59\\u6960\",\"sunzghiqiang\":\" \\u5b59\\u5fd7\\u5f3a\",\"test1\":\"test1\",\"test111\":\"\\u9648\\u5143\\u5143\",\"test2\":\"test2\",\"tester\":\"\\u6d4b\\u8bd5\",\"tester1\":\"\\u6d4b\\u8bd5\\u7532\",\"tester2\":\"\\u6d4b\\u8bd5\\u4e59\",\"tester3\":\"\\u6d4b\\u8bd5\\u4e19\",\"testManager\":\"\\u6d4b\\u8bd5\\u7ecf\\u7406\",\"Testuser\":\"WEWE\",\"tnt\":\"\\u5927\\u7237\",\"vera\":\"SJ\",\"wanglu\":\"\\u738b\\u8def\",\"wangshuai\":\"\\u738b\\u5e05\",\"wangyidong\":\"wangyidong\",\"xiaomama\":\"xiaoma\",\"xiaoqiang\":\"\\u5c0f\\u5f3a\",\"xiaoxiao\":\"\\u662f\\u4f60\",\"xieyong\":\"\\u8c22\\u52c7\",\"xxddxx\":\"xxddxx\",\"yangtian\":\"\\u6768\\u5929\",\"yangyang\":\"\\u9633\\u521a\",\"yanyan\":\"\\u8273\\u8273\",\"yiyi\":\"yiyi\",\"ylroki\":\"leo\",\"YUAN\":\"\\u8881\\u4e2d\",\"ywtk\":\"ywtk\",\"zdhk\":\"\\u771f\\u5f97\\u5f88\\u5feb\",\"zhangke\":\"\\u5f20\\u53ef\",\"zhangle\":\"lele\",\"zhangmou\":\"\\u5f20\\u67d0\",\"zhangqi\":\"\\u5f20\\u9f50\",\"zhangsan\":\"zhangsan\",\"zhoutiantian\":\"\\u5468\\u5929\\u5929\",\"zhoutt\":\"\\u5468TT\",\"zhouwenping\":\"\\u5468\\u6587\\u5e73\",\"zwp123\":\"\\u5468\\u6587\\u840d\",\"zwp345\":\"\\u5468\\u6587\\u658c\",\"zwp345123\":\"\\u5468\\u6587\\u658c\",\"zwpzhouwenpin\":\"\\u5468\\u6587\\u6587\",\"zwpzhouwenping\":\"\\u5468\\u6587\\u6587\",\"zzzzz\":\"zzz\",\"closed\":\"Closed\"},\"preAndNext\":{\"pre\":{\"id\":\"865\",\"company\":\"1\",\"project\":\"30\",\"module\":\"0\",\"story\":\"0\",\"storyVersion\":\"1\",\"fromBug\":\"0\",\"name\":\"\\u56fd\\u7535\",\"type\":\"misc\",\"pri\":\"0\",\"estimate\":\"0\",\"consumed\":\"0\",\"left\":\"11\",\"deadline\":\"0000-00-00\",\"status\":\"doing\",\"statusCustom\":\"6\",\"mailto\":\"\",\"desc\":\"\\u4e0b\\u4e00\\u6b65\",\"openedBy\":\"demo\",\"openedDate\":\"2013-03-18 14:55:13\",\"assignedTo\":\"demo\",\"assignedDate\":\"2013-03-18 14:55:13\",\"estStarted\":\"2013-03-18\",\"realStarted\":\"2013-03-18\",\"finishedBy\":\"\",\"finishedDate\":\"0000-00-00 00:00:00\",\"canceledBy\":\"\",\"canceledDate\":\"0000-00-00 00:00:00\",\"closedBy\":\"\",\"closedDate\":\"0000-00-00 00:00:00\",\"closedReason\":\"\",\"lastEditedBy\":\"demo\",\"lastEditedDate\":\"2013-03-18 14:56:21\",\"deleted\":\"0\"},\"next\":{\"id\":\"861\",\"company\":\"1\",\"project\":\"282\",\"module\":\"0\",\"story\":\"406\",\"storyVersion\":\"1\",\"fromBug\":\"0\",\"name\":\"bbbbbbbbbb\",\"type\":\"devel\",\"pri\":\"3\",\"estimate\":\"0\",\"consumed\":\"20\",\"left\":\"0\",\"deadline\":\"2013-01-11\",\"status\":\"done\",\"statusCustom\":\"12\",\"mailto\":\"\",\"desc\":\"bbbbbbbbbbbbbb\",\"openedBy\":\"demo\",\"openedDate\":\"2013-03-16 17:42:37\",\"assignedTo\":\"demo\",\"assignedDate\":\"2013-03-17 23:58:27\",\"estStarted\":\"2013-01-02\",\"realStarted\":\"2013-01-03\",\"finishedBy\":\"demo\",\"finishedDate\":\"2013-03-17 23:58:12\",\"canceledBy\":\"\",\"canceledDate\":\"0000-00-00 00:00:00\",\"closedBy\":\"\",\"closedDate\":\"0000-00-00 00:00:00\",\"closedReason\":\"\",\"lastEditedBy\":\"demo\",\"lastEditedDate\":\"2013-03-17 23:58:27\",\"deleted\":\"0\"}},\"modulePath\":[]}","md5":"e976413cb2b6e33e63ea88e361bbeca5"}
我看了框架源码发现在 parseJSON 这个函数里是:
private function parseJSON($moduleName, $methodName)
{
unset($this->view->app);
unset($this->view->config);
unset($this->view->lang);
unset($this->view->header);
unset($this->view->position);
unset($this->view->moduleTree);
$output['status'] = is_object($this->view) ? 'success' : 'fail';
$output['data'] = json_encode($this->view);
$output['md5'] = md5(json_encode($this->view));
$this->output = json_encode($output);
}
是不是和两次json_encode有关?
这样导致返回的不是标准的json格式
$result = json_decode($result)
if($result->status == 'success')
{
if(md5($result->data) == $result->md5)
{
$data = json_decode($result->data)
}
}



精品资料包
1V1产品演示
免费试用增强功能
专属顾问答疑支持


