現在、Androidアプリケーション内から(URLから)JSONフィードを呼び出す作業を行っています。このURLを呼び出すことは問題ありませんが、JSON出力で非常に厄介な問題が発生しています。昨日はJSONが正常に機能していましたが、今日呼び出したときに、文字列をJSONオブジェクトに変換できないというエラーが表示されます。
結果をコンソールに出力しましたが、JSON文字列は問題なく表示されました。
{"message":{"success":false,"error":22}}
ただし、substring()メソッドを使用して文字列の最初の文字のみを取得すると、出力は次のようになります。
·
これはエンコーディングの問題だと思いますが、JSONフィードに次のヘッダーを付けています。
content-type: application/json; charset=utf-8
YiiフレームワークメソッドCJSON::encode()を使用して、データをJSONにエンコードしています。今朝まで、それはいつも私に働きました。すべてのエンコーディングをutf-8に設定しましたが、役に立ちませんでした。
また、ブラウザーからJSONフィードを呼び出し、JSONをコピーして、オンラインJSONバリデーターを使用しました。これにより、最初の行に「{」ブラケットである「無効なJSON」の結果が表示されました。ブラケットを削除して手動で追加し、JSONを再度検証すると、バリデーターが「有効なJSON」の結果を返しました。