質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

2225閲覧

ユニコード形式のJsonを$.getJSON処理後にデコードしたい

tomato01

総合スコア80

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/01/30 02:29

Wordpressのデータ(rest api経由)を$.getJSONで取り込み、別サイト(同一ドメイン内)で表示させることを考えております。
その際に、ユニコード形式のJsonデータを$.getJSON処理後にデコードしたいと考えております。

尚、現状ではデコード作業を手動で行っております。その場合は$.getJSON後の処理は思った通りに動作をしております。

現状の流れ
①ブラウザーでhttp://サイト名/wp-json/wp/v2/postsを叩き、jsonデータを取得(おそらくユニコード形式)

②ユニコード形式のJsonデータを下記のサイトで日本語の文字列がわかる状態に整形
(data.jsonというファイルを作成)

https://tools.m-bsys.com/development_tooles/json-beautifier.php

③上記で作成したdata.jsonファイルを$.getJSONで取り込む

$.getJSON(“data.json”, function(json){ 処理内容 }

わからない事
現状で手動でやっている部分を自動化したいと思い、下記ののようなコードに変更をしましたが思うような動きになっておりません。ユニコード形式のJsonデータを$.getJSON処理後にデコードする方法を知りたいです。

現状のコード

$.getJSON(“http://サイト名/wp-json/wp/v2/posts”, function(json){ デコード処理(json) //JSON.stringifyやJSON.parseを使う必要はありますか? 処理内容 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lhankor_Mhy

2020/01/30 02:41

「RFC 8259より、閉じられたエコシステムで利用する場合を除き、文字コードはUTF-8でエンコードすることが必須 (MUST) となっている。」 https://ja.wikipedia.org/?curid=689610 となっていますから、エンコードされていないユニコードであることが本当なのか、再度確認してみてもらえますか?
tomato01

2020/01/30 03:02

ご回答を頂きありがとうございます。 すみません私の勉強不足で下記のようなコードがユニコード形式と思っていたのですがこれは違う形式でしょうか。 コード一例 [{"rendered":"[M005]\u571f\u5730\u576a\u5358\u4fa1\uff2040.26\u4e07\u5186(\u53e4\u5bb6\u4ed8\u304d)"},"content":{"rendered":"","protected":false},
Lhankor_Mhy

2020/01/30 03:27

ああ、バイトコードではなくて、エスケープ文字列なんですね。 それであれば、kei344さんのおっしゃるとおりでは。 ただ、そのコード一例、JSONの文法としてはおかしいですよ。
tomato01

2020/01/30 04:39

ご回答を頂きありがとうございます。私の知識不足で失礼しました。 kei344さんのおっしゃる通り、処理はうまくされていることで認識しました。 コード一例の指摘もありがとうございます。
guest

回答1

0

ベストアンサー

日本語の文字列がわかる状態に整形

この工程をしなくてもそのまま受け取ればよいのではないでしょうか。(getJSONは内部でparseを行うので)

投稿2020/01/30 02:34

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomato01

2020/01/30 02:41

ご回答を頂きありがとうございます。 私もそういう認識だったのですが、URLで直接指定をした際はその後の処理がうまくいかずデコードなどが必要なのではと思ったところです。
kei344

2020/01/30 02:45

「うまくいかず」とはどのような状況でしょうか。
tomato01

2020/01/30 04:37 編集

説明不足ですみません。 取得したjsonデータにはマップの座標情報などが入っており、そちらのデータを取得後にマップ上にマーカーを立てる処理をしております。jsonデータには200件ほどのデータが入っております。 処理の順番では下記の通りです。 Jsonデータの取得 $.getJSON(“data.json”, function(json){ for (var i = 0; i <= json.length-1; i++) { mapData.push( { 'lat': Number(json[i].acf.lat), 'lng': Number(json[i].acf.lng), } ); マップの表示 function generate_map() { マップを表示させる処理 } マップにマーカーを追加する function add_marker() {    マーカーを表示させる処理 }); $.getJSONでの処理は問題なさそうとした場合、自分が考えたのがJsonデータの取得が完了する前にマップにマーカーを追加する処理が動いてしまっているのではと考えましたが、そのようなことは考えられますでしょうか。
kei344

2020/01/30 04:41

断片のコードにつながりがありません。コード全体を質問文にコードブロックで追記してください。(決して元のコードを消さないでください) また、「うまくできない」とは「何をしたときに」「どうなると思って」「どうなったのか」を、出ているエラーなどと併せて、具体的に記述されたほうが回答を得られやすいと思います。
tomato01

2020/01/30 11:43

ご指摘の点、次回から意識をして伺うようにします。 ご回答を頂き誠にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問