Я новичок в 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>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вот упрощенное решение:
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, а также отправлю вам пример песочницы для изучения.
Например, если файл JSON имеет имя объекта как «1»: «SOFT-STARTER», вы можете получить к нему доступ как {{ data[1] }}, я обновил пример кода с решением.
Ребята, я собираюсь поделиться здесь еще одним решением, в котором данные возвращаются внутри таблицы. Еще один отличный вариант, помимо того, с которым мне помог Авраам. stackoverflow.com/questions/72967282/…
Друг, вопрос: каким будет код, если у меня нет ни FastAPI, ни websocket.send_json() для Vue. Код FastAPI похож на этот вопрос: stackoverflow.com/questions/64101460/…
Это сработало отлично, приятель. Сомнение: а если бы вместо текста было число, например... вместо "название" было бы "1"?