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

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

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

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

JavaScript

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

Q&A

1回答

1273閲覧

JavascriptでJSONファイルの特定のデータを抜き出したい

S.S0024

総合スコア0

JSON

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

JavaScript

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

0グッド

0クリップ

投稿2021/01/25 09:40

前提・実現したいこと

以下のようなJSONファイルを外部から取得してstdout以降のプロパティを取り出したいのですが、
取り出し方が分かりません。

[{"id":"0","message":"[2021/01/21 10:15:06] stdout={"TEST1":"test1","TEST2":"test2","TEST3":"test3"}\n, stderr=\n[2021/01/21 10:15:06]$[TEST]\n[2021/01/21 10:15:02]$[TEST2]","date":"20210121"}]

試したこと

javascript

1//jsonに外部から取得したJSONのデータが入っている。 2//オブジェクトにパースする 3const obj = JSON.parse(json); 4const obj2 = obj[0].message;

以下のようにmessageプロパティの値を取り出せることを確認しました。
[2021/01/21 10:15:06] stdout=["TEST":"test1","TEST2":"test2","TEST3","test3"]
,stderr=
[2021/01/21 10:15:02]$[TEST]
[2021/01/21 10:15:02]$[TEST2]

ここからstdout.TESTのような形で値を取り出したいのですが、どのように実装すればよいか分かりません。
申し訳ありませんが、javascript、json共に初学者レベルのため分かりづらい部分等あると思いますが、
ご教授いただければ幸いです。

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

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

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

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

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

m.ts10806

2021/01/25 09:44

Tomcatのエラーログが何かですか?
S.S0024

2021/01/25 10:11

すみません回答になっているか分かりませんが、 JSONで取り出しているのはhinemosjobを実行した際の戻り値になります。
m.ts10806

2021/01/25 10:28

となると「JavaScript」というより「Node.js」の話ですかね。 ちょっと環境情報詳細も欲しいです。タグも整理してください。
guest

回答1

0

きちんとしたJSONで処理すればいけるのでは?

javascript

1const json='[{"id":"0","message":"[2021/01/21 10:15:06] stdout={\\"TEST1\\":\\"test1\\",\\"TEST2\\":\\"test2\\",\\"TEST3\\":\\"test3\\"}\\n, stderr=\\n[2021/01/21 10:15:06]$[TEST]\\n[2021/01/21 10:15:02]$[TEST2]","date":"20210121"}]'; 2const stdout = JSON.parse(JSON.parse(json)[0].message.match(/stdout=(.+?)(?=\n)/)[1]); 3console.log(stdout.TEST1); 4

投稿2021/01/25 10:21

編集2021/01/25 10:22
yambejp

総合スコア115010

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

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

S.S0024

2021/01/25 11:31

回答ありがとうございます。やりたいことが実施できております。 一点追加で確認ですが、今受け取っているJSONの形はあまり良くないということでしょうか? できれば受け取ってから、正しい形に直せれば良いのですが、そういったことは可能なのでしょうか?
yambejp

2021/01/25 11:33

受け取りはajax(XHR)やfetchでしょうか? 例示されているデータと私のサンプルだとエスケープが微妙に違うのわかりますか? 実際に同データが受け取れているかによるのでなんとも言えないです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問