json_encode返回的数据怎么接收
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json_encode返回的数据怎么接收相关的知识,希望对你有一定的参考价值。
参考技术A 1、首先前台AJAX请求,后台以对象转json返回。2、其次后台返回的List里面装对象然后转json,后台代码。
3、最后前台解析代码,接收数据。
从 PHP 脚本接收“json_encode”时 Swift JSON 出错。没有它也能正常工作
【中文标题】从 PHP 脚本接收“json_encode”时 Swift JSON 出错。没有它也能正常工作【英文标题】:Error in Swift JSON when receiving 'json_encode' from PHP script. Works fine without it 【发布时间】:2016-10-20 08:41:39 【问题描述】:我有一个按钮的 Swift 函数,当按下该按钮时,它会通过 PHP 将一些详细信息写入数据库:
@IBAction func createCommunityButtonTapped(_ sender: AnyObject)
let communityName = communityNameTextField.text;
if (communityName!.isEmpty)
displayMyAlertMessage(userMessage: "You must name your Community");
return;
else
func generateRandomStringWithLength(length: Int) -> String
var randomString = ""
let letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
for _ in 1...length
let randomIndex = Int(arc4random_uniform(UInt32(letters.characters.count)))
let a = letters.index(letters.startIndex, offsetBy: randomIndex)
randomString += String(letters[a])
return randomString
let communityCode = generateRandomStringWithLength(length: 6)
passwordTextField.text = communityCode
let myUrl = URL(string: "http://www.quasisquest.uk/KeepScore/createCommunity.php?");
var request = URLRequest(url:myUrl!);
request.httpMethod = "POST";
let postString = "communityname=\(communityName!)&code=\(communityCode)&email=\(myEmail!)";
request.httpBody = postString.data(using: String.Encoding.utf8);
let task = URLSession.shared.dataTask(with: request) (data, response, error) in
if (try! JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String:AnyObject]) != nil
task.resume()
除了我将这个echo json
line 添加到 PHP 脚本中之外,该函数工作得很好:
if($newresult)
$returnValue["status"] = "Success";
$returnValue["message"] = "Community is registered";
echo json_encode($returnValue);
return;
然后我在这一行收到错误Thread 8: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subside = 0x0)
:
if (try! JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String:AnyObject]) != nil
并且在调试区有以下细节
data Data? some
response URLResponse? 0x0000618000223500
error Error? nil none
我想我遗漏了一行,或者需要为 JSONSerialization 设置一个变量而不是“尝试!”但我不确定是什么。
【问题讨论】:
【参考方案1】:您正在返回null
。试试这个
if($newresult)
$returnValue["status"] = "Success";
$returnValue["message"] = "Community is registered";
return json_encode($returnValue);
【讨论】:
以上是关于json_encode返回的数据怎么接收的主要内容,如果未能解决你的问题,请参考以下文章
PHP Json_encode() 空数组时,返回 [] 与 {} 的问题
对数组内容使用了json_encode返回汉字内容返回了空值