\r\n\r\n```\r\n\r\n```java\r\nimport java.util.List;\r\nimport java.util.Map;\r\n\r\nimport org.springframework.beans.factory.annotation.Autowired;\r\nimport org.springframework.jdbc.core.JdbcTemplate;\r\nimport org.springframework.stereotype.Controller;\r\nimport org.springframework.ui.Model;\r\nimport org.springframework.web.bind.annotation.RequestMapping;\r\nimport org.springframework.web.bind.annotation.RequestParam;\r\n\r\nimport com.fasterxml.jackson.core.JsonProcessingException;\r\nimport com.fasterxml.jackson.databind.ObjectMapper;\r\n\r\n@Controller\r\n@RequestMapping(\"/S\")\r\npublic class Controller {\r\n\t\r\n\t@Autowired\r\n\tJdbcTemplate jdbc = new JdbcTemplate();\r\n\t\r\n\t\t@RequestMapping(params=\"select\")\r\n\t\tpublic String selectNum(Model model, @RequestParam(\"num\") int num) throws JsonProcessingException {\r\n\t\t\t\r\n\t\t\tObjectMapper mapper = new ObjectMapper();\r\n\t\t\t\r\n\t\t\tList> list = \r\n\t\t\t\t\tjdbc.queryForList(\"SELECT * FROM mysql_list WHERE num=?\", num);\r\n\t\t\t\r\n\t\t\tString Json = mapper.writeValueAsString(list);\r\n\t\t\t\r\n\t\t\tmodel.addAttribute(\"list\",Json);\r\n\t\t\t\r\n\t\t\treturn \"View\";\r\n\t\t}\r\n}\r\n\r\n```\r\n\r\n---\r\n環境:\r\nSTS4 4.7.2\r\nwindows10 64bit","answerCount":1,"upvoteCount":0,"datePublished":"2020-10-06T07:21:39.386Z","dateModified":"2020-10-06T07:21:39.386Z","acceptedAnswer":{"@type":"Answer","text":"jlistの中がどうなっているかわかりませんが、\r\njlist[0].name\r\nで試すとどうなりますか?\r\njlistの中が{ \"name\":\"a\" }ならjlist.nameで取り出せますが、\r\njlistの中が\r\n[\r\n  {\"name\":\"a\"},\r\n  {\"name\":\"b\"}\r\n]\r\nなら配列にアクセスしないと取れないですが、そんなことではないですかね?","dateModified":"2020-10-07T07:32:14.265Z","datePublished":"2020-10-07T07:32:14.265Z","upvoteCount":1,"url":"https://teratail.com/questions/296279#reply-418686"},"suggestedAnswer":[],"breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://teratail.com","name":"トップ"}},{"@type":"ListItem","position":2,"item":{"@id":"https://teratail.com/tags/jQuery%20UI","name":"jQuery UIに関する質問"}},{"@type":"ListItem","position":3,"item":{"@id":"https://teratail.com/questions/296279","name":"thymeleafでJSON形式の中身の値を取り出せない"}}]}}}
質問するログイン新規登録

Q&A

解決済

1回答

7499閲覧

thymeleafでJSON形式の中身の値を取り出せない

sad

総合スコア16

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

JSON

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

JavaScript

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

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2020/10/06 07:21

0

0

・番号(num)を入力し検索ボタンを押すとデータベースから対応する番号の情報を取得しJSON形式に変換、返す

・帰ってきたJSON形式のリストをparseし、中のnameを取り出す

・idがnameのテキストボックスに値を反映する

といったことをやりたいです。
var jlist まではJSONデータの格納を確認しているのですが、jlist.nameで値を取り出すことができません。(console.logで確認するとvar name は undefined になっている)

違うプログラムではこの形で取り出せているので、なぜできないのかがわかりません。
どうか知恵をお貸し願います。

View

1<form th:action="@{/S}"> 2No.<input type="text" name="nom" id="num"> 3 <input type="submit" value="検索" name="select"> 4</form> 5<input type="text" id="name"> 6 7<script type="text/javascript" th:inline="javascript"> 8/*<![CDATA[*/ 9 var slist = /*[[ ${list} ]]*/ 10 var jlist = JSON.parse(slist); 11 var name = jlist.name; 12 $('#name').val(name); 13/*]]>*/ 14</script> 15

java

1import java.util.List; 2import java.util.Map; 3 4import org.springframework.beans.factory.annotation.Autowired; 5import org.springframework.jdbc.core.JdbcTemplate; 6import org.springframework.stereotype.Controller; 7import org.springframework.ui.Model; 8import org.springframework.web.bind.annotation.RequestMapping; 9import org.springframework.web.bind.annotation.RequestParam; 10 11import com.fasterxml.jackson.core.JsonProcessingException; 12import com.fasterxml.jackson.databind.ObjectMapper; 13 14@Controller 15@RequestMapping("/S") 16public class Controller { 17 18 @Autowired 19 JdbcTemplate jdbc = new JdbcTemplate(); 20 21 @RequestMapping(params="select") 22 public String selectNum(Model model, @RequestParam("num") int num) throws JsonProcessingException { 23 24 ObjectMapper mapper = new ObjectMapper(); 25 26 List<Map<String, Object>> list = 27 jdbc.queryForList("SELECT * FROM mysql_list WHERE num=?", num); 28 29 String Json = mapper.writeValueAsString(list); 30 31 model.addAttribute("list",Json); 32 33 return "View"; 34 } 35} 36

環境:
STS4 4.7.2
windows10 64bit

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

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

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

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

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

s806099d

2020/10/06 10:21

jlistのjsonの中身ってどうなってますか? nameという要素はちゃんと入っている状態ですか?
sad

2020/10/06 11:58

はい。8個程度要素がある中の二つ目に"name":"hoge"が入っています。構文もおかしくはないのでJSON.parseは通るのですが…そこから値が取り出せなくて困っております。
guest

回答1

0

ベストアンサー

jlistの中がどうなっているかわかりませんが、
jlist[0].name
で試すとどうなりますか?
jlistの中が{ "name":"a" }ならjlist.nameで取り出せますが、
jlistの中が
[
{"name":"a"},
{"name":"b"}
]
なら配列にアクセスしないと取れないですが、そんなことではないですかね?

投稿2020/10/07 07:32

s806099d

総合スコア60

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

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

sad

2020/10/07 07:50

できない、、ですね、、 回答がここまでつかないということは恐らくできないということなのでしょうね、、 JSON形式を諦めてリストとして使います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.29%

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

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

質問する

関連した質問