Как импортировать JSON внутри Vue.js и html

Я новичок в Vue и не привык к HTML

Я пытаюсь импортировать информацию из JSON в свой интерфейс, чтобы представить ее пользователю.

Вот стиль JSON:

[
{
"Title": "SOFT-STARTER", 
"Cod": "Produto: 15775931", 
"Description": "A soft-starter SSW7000 permite o controle de partida/parada e proteção de motores.", 
"Technical_characteristics": ["Corrente nominal", "600 A", "Tensão nominal", "4,16 kV", "Tensão auxiliar", "200-240 V", "Grau de proteção", "IP41", "Certificação", "CE"]
},
{
"Title": "SOFT-STARTER SSW", 
"Cod": "Produto: 14223395", 
"Description": "A soft-starter SSW7000 permite o controle de partida/parada e proteção de motores de indução trifásicos de média tensão.", 
"Technical_characteristics": ["Corrente nominal", "125 A", "Tensão nominal", "6,9 kV", "Tensão auxiliar", "200-240 V", "Grau de proteção", "IP54/NEMA12", "Certificação", "CE"]
}
]

Я видел несколько руководств, но ничего не помогло. Вот статус текущего кода. Этот код даже запускается, но он не приносит никаких данных в «текстовое поле» html. Вот код файла EstepeJson.vue:

<template>
    <div class = "hello">
      <textarea v-model = "listDataString" rows = "20" cols = "80"></textarea>
      <ul id = "items">
        <li v-for = "(item, index) in listData" :key = "index">
          {{ `${item.text} [${item.id}]` }}
        </li>
      </ul>
    </div>
    
  </template>

<script>
import axios from "../components/DadosScrapingProdutos.js";

export default {
  name: "JsonArq",
  props: {
    msg: String,
  },
  data() {
    return {
      listDataString: '',
      listData: [], // placeholder
    };
  },
  mounted() {
    axios
      .get("=== [API_ENDPOINT] == = ")
      .then((response) => {
        this.listDataString = JSON.stringify(response.data, null, "\t");
        this.listData = response.data;
        console.info(this.listDataString);
        return response; // multiline arrow function must return
      });
  },
};
</script>

Код из основного файла Vue, App.vue, выглядит следующим образом:

<template>
  <div class = "main-container">
    <h1 style = "color:#0072c6;">Hello</h1>
    <p style = "text-align:center; color:#0072c6;" >Bem Vindo ao Autocomplete para noticiais <br>
     Team, v-1.0<br>
    <Autocomplete />
    <br>
    <JsonArq />
    <img src = "./components/logo.png" width=250 height=200 alt = "Logo WEG" >
    </p>
  </div>
</template>

<script>
import Autocomplete from './components/Autocomplete.vue'
import JsonArq from './components/EstepeJSON.vue'
export default {
  name: 'App',
  components: {
    Autocomplete, 
    JsonArq
  }
}
</script>

<style>

  .main-container {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    font-family: 'Fredoka', sans-serif;
  }

  h1 {
    font-size: 3rem;
  }

  @import url('https://fonts.googleapis.com/css2?family=Fredoka&display=swap');
</style>
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот упрощенное решение:

1- Поместите свои данные JSON в файл с именем data.json в каталоге src/.

2- В компоненте Vue EstepeJson.vue внутри тега script импортируйте файл JSON:

import json from "@/data.json"; 

3- Затем в том же файле EstepeJson.vue добавьте данные в свойство данных следующим образом:

export default {
  name: "EstepeJson",
  data() {
    return {
      myJson: json,
    };
  },
}; 

4- В том же файле EstepeJson.vue внутри тега html добавьте следующее:

<template>
 <div v-for = "data in myJson" :key = "data.Cod">
    <p>{{ data.Title }}</p>
    <p>{{ data.Cod }}</p>
    <p>{{ data.Description }}</p>
    <p>{{ data.Technical_characteristics }}</p>
  </div>
 </template>

вот пример живого кода: https://codesandbox.io/embed/crazy-shadow-01ex0w?fontsize=14&hidenavigation=1&theme=dark

5- Если вы пытаетесь получить данные JSON из конечной точки, отправьте мне URL-адрес, и я напишу код для вас с помощью Axios, а также отправлю вам пример песочницы для изучения.

Это сработало отлично, приятель. Сомнение: а если бы вместо текста было число, например... вместо "название" было бы "1"?

CH97 25.11.2022 15:12

Например, если файл JSON имеет имя объекта как «1»: «SOFT-STARTER», вы можете получить к нему доступ как {{ data[1] }}, я обновил пример кода с решением.

Abraham Felix 27.11.2022 01:43

Ребята, я собираюсь поделиться здесь еще одним решением, в котором данные возвращаются внутри таблицы. Еще один отличный вариант, помимо того, с которым мне помог Авраам. stackoverflow.com/questions/72967282/…

CH97 28.11.2022 11:49

Друг, вопрос: каким будет код, если у меня нет ни FastAPI, ни websocket.send_json() для Vue. Код FastAPI похож на этот вопрос: stackoverflow.com/questions/64101460/…

CH97 29.11.2022 12:30

Другие вопросы по теме