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

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

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

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

JavaScript

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

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Spring Boot

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

Q&A

解決済

1回答

1100閲覧

Vue3でJSONデータを自分で定義した型のオブジェクトにいれる方法がわからない

ryomaryoma

総合スコア1

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

JavaScript

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

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Spring Boot

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

0グッド

0クリップ

投稿2023/04/22 15:23

実現したいこと

VueでAPIを叩いて返ってきたJSONデータを自分で定義した型のオブジェクトにしたい。

前提

VueとSpringFrameworkをつかって、Vueでaxiosを使ってページを読み込んだ時にローカル間で通信をしています。
JSONデータを自分で定義した型に入れて扱いたいのですが、コンソールで確認すると代入できておらず何が間違っているのかわかりません。

発生している問題・エラーメッセージ

コンソールの3行目にundefinedと表示される。1、2行目はどちらも

0 : {id: 101, ranking: 1, score: 1000000, name: 'tarou'} length : 1 [[Prototype]] : Array(0)

となっています

Vueのソースコード

TypeScript

1<script setup lang="ts"> 2import { onMounted } from "vue"; 3import { RouterLink, RouterView } from "vue-router"; 4import axios from "axios"; 5const url = "http://localhost:8080/ranking"; 6type rankingData = { 7 id: number; 8 ranking: number; 9 score: number; 10 name: string; 11}; 12 13onMounted((): void => { 14 const response = axios.get(url).then(function (response) { 15 console.log(response.data); 16 const rankingDataJSON = response.data as rankingData; 17 console.log(rankingDataJSON); 18 const elm = rankingDataJSON.id; 19 console.log(elm); 20 }); 21}); 22</script>

Springのソースコード

package com.example.demo; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; @RestController public class RankingController { @CrossOrigin(origins = "http://localhost:5173") @GetMapping("ranking") public List<RankingData> outputRanking(){ List<RankingData> rankingDataList = new ArrayList<>(); RankingData data = new RankingData(); data.id = 101; data.ranking = 1; data.name = "tarou"; data.score = 1000000; rankingDataList.add(data); return rankingDataList; } }

試したこと

TypeScript 型 や JSONデータ オブジェクト変換 などで1時間ほど調べたがわからず...
入社してからプログラミングをはじめ、質問のしかたもこれで正しいかどうかもわからないですが何卒宜しくお願いいたします。

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

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

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

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

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

guest

回答1

0

自己解決

操作を誤って二回同じ質問をしてしまったのでこちらを回答済にします、申し訳ありません。

投稿2023/04/22 15:33

ryomaryoma

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問