2017-12-18 5 views
0

JSONに "/ n"と "/"がある場合、PHPはエラーを返します。私は私のPHPコードや私の迅速なコードを変更する必要があるか分からない。SwiftやPHPでスラッシュのないJSONにコアデータをエンコードする方法

私のPHPコード

$json = file_get_contents('php://input'); 
$obj = json_decode($json, true); 
print_r($obj); 

それがデコードするのに失敗するように見えますか?

Array ([0] => {"user":"1","accbooktype":"æµæ°´è´¦æœ¬","accbookname":"日常","accbookid":"1","category":"日常","cid":"U1L2B555"}) 

enter image description here

成功出力:

Array ([0] => Array ([cid] => 5 [accbookname] => test [accbooktype] => test [category] => test [user] => test)) 

enter image description here

これは私の迅速なコードです。ここでコードを変更する場合。コアデータをスラッシュなしでJSONにエンコードする方法を知る必要があります。

//newdict is Core data 
let jsonData = try JSONSerialization.data(withJSONObject: newdict, options: [.prettyPrinted]) 

//I tried this also but not worked 
//let jsonEncoder = JSONEncoder() 
//let jsonData = try jsonEncoder.encode(newdict) 

let jsonString = String(data: jsonData, encoding: .utf8) 
bookJSON.append(jsonString!) 

print(bookJSON) 

出力:

["{\n \"cid\" : \"U1L2B1\",\n \"user\" : \"1\",\n \"accbooktype\" : \"流水账本\",\n \"accbookname\" : \"日常\",\n \"accbookid\" : \"1\",\n \"category\" : \"日常\"\n}"] 

この

[ 
    { 
     "cid": "5", 
     "accbookname" : "test", 
     "accbooktype": "test", 
     "category": "test", 
     "user": "test" 
    } 
] 
+1

あなたはすでにfile_get_contents( 'php:// input')から2回エンコードされたjsonを取得しています。 エンドポイントを呼び出してデータを渡す、反対側のjsonエンコーディングを削除します。また、特殊文字のためにエンドポイントに渡す前にデータをutf8にエンコードする必要があるかもしれません。 – Eimsas

+0

辞書をJSONに迅速にエンコードする必要はありませんか? @Eimsas –

答えて

0

するには、この

header('Content-Type: application/json'); 
$request = json_decode(file_get_contents('php://input'), true); 
print_r($request); 

することができますアルを試すことができますだからタイプキャストを使用する

$request = (array) json_decode(file_get_contents('php://input'), true); 
+0

同じエラーメッセージ.. –

関連する問題