#html #json #typescript #vue.js
#HTML #json #typescript #vue.js
Вопрос:
Итак, у меня есть строка JSON foo_json_string
:
[{"foo_name":"foo_value"},{"foo_name1":"foo_value1"}]
который я хочу проанализировать и показать в виде HTML-списка.
Я использовал следующий подход:
<ul>
<li v-for="item in JSON.parse(foo_json_string)" v-bind:key="item.id">
{{`${item.name} = ${item.value}`}}
</li>
</ul>
Это не работает. Скорее всего, потому item.name
что и item.value
не существует, но я не уверен, как это исправить. Есть предложения?
Комментарии:
1. каков результат??
Ответ №1:
Может быть, ты имеешь в виду вот так?
var respond = [{"foo_name":"foo_value"},{"foo_name1":"foo_value1"}];
$.each(respond, function(k, v){
console.log(v);
$.each(v, function(k1, v1){
$('#out').append('<li>' v1 '</li>');
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="out"></ul>
Ответ №2:
Вам необходимо получить доступ key
к проанализированному Object
. Используйте Object.keys()
метод для получения ключа. Ниже приведен рабочий фрагмент.
new Vue({
el: '#app',
data: {
foo_json_string: '[{"foo_name":"foo_value"},{"foo_name1":"foo_value1"}]',
},
});
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<div id="app">
<ul v-for="item in JSON.parse(foo_json_string)">
<li v-for="key in Object.keys(item)">
{{`${key} = ${item[key]}`}}
</li>
</ul>
</div>