- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我一直在尝试从他们的 Survey Monkey 帐户中提取客户的调查数据,似乎他们的数据越多,非法字符就越有可能被引入到生成的 JSON 字符串中。
下面是错误响应返回的示例,每个响应都不同,甚至更短的请求有时也会失败,让我不知所措。
{
"survey_id": "REDACTED",
"title": "REDACTED",
"date_modified": "2014-XX-18 17:59:00",
"num_responses": 0,
"date_created": "�2014-01-21 10:29:00",
"question_count": 102
}
我不明白为什么会这样,字段选项中的参数越多,引入的非法字符就越多。不仅仅是非法的无效字符,有时还会随机输入字母,这使我无法正确处理数据。
我将 Laravel 4 与 oori 的第三方 Survey Monkey 库一起使用 https://github.com/oori/php-surveymonkey
如果您能在追踪问题方面提供任何帮助,我们将不胜感激,截止日期非常紧迫,如果无法解决,我将不得不求助于要求客户手动导入 CSV 文件,这并不理想,并且引入了可能用户错误。
附带说明一下,在 Survey Monkey 控制台上使用相同的参数时,我没有看到这个问题突然出现。
操作系统:带有 WAMP 服务器的 Windows 8.1
用于执行请求的代码
$Surveys = SurveyMonkey::getSurveyList(array
(
'page_size' => 1000,
'fields' => array
(
'title', 'question_count', 'num_responses', 'date_created', 'date_modified'
)
));
SurveyMonkey
facade 是一个自定义包,用于集成位于此处的原始 Survey Monkey 库: https://github.com/oori/php-surveymonkey/blob/master/SurveyMonkey.class.php
原始 PHP cURL 请求
$header = array('Content-Type: application/json','Authorization: Bearer REDACTED');
$post = json_encode(array(
'fields' => array(
'title', 'question_count', 'num_responses', 'date_created', 'date_modified'
)
));
$post = json_encode($post);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.surveymonkey.net/v2/surveys/get_survey_list?api_key=REDACTED");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result = curl_exec($ch);
上面的请求返回相同的麻烦字符,没有使用其他任何东西来获取响应。
使用下面的代码
echo "\n".mb_detect_encoding($result, 'UTF-8', true);
此代码显示响应的字符集,当成功且不存在非法字符时(在错误的地方仍然有随机字符)它返回它实际上是 UTF-8,当存在非法字符时返回 false所以没有输出。通常会返回 false。
最佳答案
也许我把整个事情过于简单化了,如果是这样的话,我深表歉意,但我也让这些有趣的小字符出现在结果中。他们是前导和尾随的空白。您能否在检索时修剪数据并查看它是否仍然发生?
关于php - Survey Monkey (get_survey_list) 返回错误的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25108342/
我一直在尝试从他们的 Survey Monkey 帐户中提取客户的调查数据,似乎他们的数据越多,非法字符就越有可能被引入到生成的 JSON 字符串中。 下面是错误响应返回的示例,每个响应都不同,甚至更
我只是想做一个简单的 get_survey_list 调用 - 但它总是返回一个错误:“没有 JSON 对象可以被解码:第 1 行第 0 列(字符 0)” 这是代码:(我的 api key 和 oau
我是一名优秀的程序员,十分优秀!