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

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

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

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

JavaScript

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

Q&A

解決済

1回答

633閲覧

Vueで取得したhtmlを"</script>"でsplitしてJSON化したいです。

退会済みユーザー

退会済みユーザー

総合スコア0

Vue.js

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

JavaScript

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

0グッド

0クリップ

投稿2019/07/18 00:51

### やろうとしたこと
こちらのサイトを参考にしてInstagramの画像とキャプションをVueに表示しようと思いましたがエラーが出てしまい、修正方法がわかりません。

### 起こった問題
恐らくsplitする時に使った"{"や"</script>"を誤認しているためエラーが出たのかと思います。

### コード

vue

1<template> 2<div> 3 <p>フィルター後</p> 4 {{ filteredList }} 5</div> 6</template> 7 8<script> 9 module.exports = { 10 data() { 11 return { 12 results: '', 13 list: [], 14 } 15 }, 16 created() { 17 axios({ 18 method : 'GET', 19 url : 'https://www.instagram.com/userid/', 20 timeout : 2000, 21 responseType : 'html' 22 }) 23 .then(response => { 24 this.results = response.data 25 }) 26 }, 27 computed: { 28 filteredList: function () { 29 let items = this.results; 30 items = items.split("window._sharedData = ")[1]; 31 items = items.split("};</script>")[0] + "}"; 32 let Arrya_data = JSON.parse(items); 33 console.log(Array_data); 34 let datas = Array_data.entry_data.ProfilePage[0].graphql.user.edge_owner_to_timeline_media.edges; 35 36 this.list = datas; 37 38 return this.list 39 } 40 }, 41 }*/ 42

### 試したこと
filteredListの

vue

1items = items.split("};</script>")[0] + "}";

内の"</script>"やセミコロンが原因だと思ったので、

vue

1let jsend = '"};<'; 2jsend += '/script>"' 3 4(省略) 5 6items = items.split(jsend)[0] + "}";

のように修正しましたが、エラーのままでした。

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

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

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

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

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

guest

回答1

0

ベストアンサー

いちばん簡単に片付けるなら、items = items.split("};</script>")[0] + "}";と、スラッシュだけエスケープしましょう。

あと、後半の方のjsendは連結した文字列が'"};</script>"'と、余計な引用符が入ってしまっています。

投稿2019/07/18 00:56

maisumakun

総合スコア145121

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問