php json_encode & newline, swift JSONSerialization 导致奇怪的输出
Posted
技术标签:
【中文标题】php json_encode & newline, swift JSONSerialization 导致奇怪的输出【英文标题】:php json_encode & newline, swift JSONSerialization causing weird output 【发布时间】:2014-09-12 22:54:57 【问题描述】:php JSON 和 Swift JSON 的一些问题。请帮我弄清楚多余的空格、\n 和其他东西是怎么回事。为什么输出不是一个干净的连续字符串。我不需要漂亮的打印或任何东西。
PHP:
$sql = "SELECT * FROM entries";
$stmt = $db->prepare($sql);
$stmt->execute();
$entries = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
echo '"root":'.json_encode($entries).'';
斯威夫特:
var request : NSMutableURLRequest = NSMutableURLRequest()
request.URL = NSURL(string: url)
request.HTTPMethod = "GET"
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue(), completionHandler: (response:NSURLResponse!, data: NSData!, error: NSError!) -> Void in
var error: NSError?
let jsonResult = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.AllowFragments, error: &error) as? NSDictionary
if (jsonResult != nil)
println(jsonResult?.description )
else
println(jsonResult?.description)
控制台输出:
Optional("\n root = (\n \n id = 1;\n text = \"Test Entry\";\n ,\n \n id = 2;\n text = \"Test Entry 2\";\n \n );\n")
数据库:
【问题讨论】:
【参考方案1】:要么这样做:
println(jsonResult!.description)
或者这个:
println(NSString(data:data, encoding:NSUTF8StringEncoding))
【讨论】:
不要将其包装在可选项中,而是打开可选项 (? vs !)以上是关于php json_encode & newline, swift JSONSerialization 导致奇怪的输出的主要内容,如果未能解决你的问题,请参考以下文章
php json_encode & newline, swift JSONSerialization 导致奇怪的输出
使用 PHP json_encode() 和 MySQL 返回一个 JSON 对象以传递给 jQuery 函数 [重复]