次の出力は、R-データフレームをJson形式で保存したときに生成されます。私のデータフレームには、HTMLリンクとアクセント文字が混在しています。 PHP/Html環境でこのファイルを扱わなければなりません。json_decodeがjson形式で格納されたデータを含むテキストファイルを読み取れません
library(jsonlite)
output_json <- toJSON(output, dataframe = "rows", pretty = T)
write(output_json, file = "output.txt")
{
"PMID":"<a href= \"http://www.ncbi.nlm.nih.gov/pubmed/?term=19369233\"
target=\"_blank\">19369233</a>",
"Title":"Delayed achievement of cytogenetic and molecular response is
associated with increased risk of progression among patients with
chronic myeloid leukemia in early chronic phase receiving
high-dose or standard-dose imatinib therapy.",
"Author":"Quintás-Cardama A",
"Random author names":"Järås M", "Imrédi E", "Tímár J."
},
私はhtmlページに最初の著者でアクセント文字や?
などへの最後の著者の変更output.txt
ファイルやプリント出力を開く:Imr�di E
を。
以下のPHPコードデコードを使用してjsonファイルを読み込むと失敗し、NULLが返されます。研究の結果、私はその問題がアクセント文字から来ていることが確かであり、場合によっては新しい行\r\n
またはhtmlタグのエスケープも不適切であると確信しています。
!-- language: lang-php -->
$r_output = file_get_contents('output.txt');
$array_json = json_decode($r_output, true);
私は、次の提案等により修正しようとした:しかし、この問題を解決することができませんでしたHow do I handle newlines in JSON?またはPHP json_decode() returns NULL with valid JSON?など。
PHPとRのユーザーにタグを付けて、この問題を回避するためにJSON形式をRに書くより良い方法があるかどうかを調べるか、json形式をPHPで読み込む前にクリーンアップしますか?
は助け
問題は、おそらく文字セットの不一致によって引き起こされます。私は、入力データがISO-8859であり、JSONが本質的にUTF8であると仮定しています。 – Sammitch
はうまく動作しているように聞こえますが、ちょうどページエンコード –
の@sammitchと一致していない可能性があります。 @ miken32、私はデフォルトで 'tojson'がUTF-8形式でエンコードすると考えました。書き込み関数が呼び出されるときにエンコーディングが必要であることを指摘していただきありがとうございます。リンクをありがとうございます。私はそれが重複しないことを願っています。おそらくtojson()関数の変換に対処しようとするのではなく、ファイル記述の観点から符号化の問題を解決することを考えていたはずです。方向性をありがとう – user5249203