@YuriySN

Как вывести данные из JSON подключив переменную?

Всем привет.

Подскажите пожалуйста, возможно ли каким-то образом подключить переменную что-бы по определенному ключу брать данные из файла JSON?!

В комментариях в файле попытался раскрыть вопрос.

Пример кода HTML, JS, jQuery:
<!DOCTYPE html>
<html>
<head>
    <title>Example</title>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <!-- <script src="load.js"></script> -->

</head>
<body>

    <ul>
        <li id="one">One</li>
        <li id="two">Two</li>
    </ul>
    
    <script>
    $(document).ready(function(){
        var clickId,  xmlhttp, text;
        $('li').click(function(){
            clickId = (this.id); // получаем id элемента <li>, по которому совершен клик
            xmlhttp = new XMLHttpRequest(); // по примеру https://www.w3schools.com/js/js_json_parse.asp
            xmlhttp.onreadystatechange = function() {
              if (this.readyState == 4 && this.status == 200) {
                text = JSON.parse(this.responseText);
                document.getElementById("first").innerHTML = text.one; // здесь текст выводится из json.txt по заранене прописанному ключу
                document.getElementById("second").innerHTML = text.clickId; // а здесь подключается переменная clickId (как ключ), которой присваивается определенный id, по которому и хотелось бы из json.txt брать данные. Но,если бы это работало, то вопрос бы не задавался
              }
            };
            xmlhttp.open("GET", "json.txt", true);
            xmlhttp.send();
        });
    });
    </script>

<p id="first"></p>
<p id="second"></p>

</body>
</html>


А это файл JSON (json.txt):
{
"one":"один",
"two":"два"
}
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
вопрос 1: подключить переменную что-бы по определенному - подозреваю вы что-то типа этого хототе - :

var rawText = '{"one":1,"two":2,"four":4}';
var jsonObj = JSON.parse(rawText);
var key = 'two';
var val = null;
for (prop in jsonObj) {
    if (prop.match(key)) {
        val = jsonObj[prop];
    }
}
console.log('key: ' + key);
console.log('val: ' + val);

вопрос 2 :

var rawText = '{"key":["one","two","three"]}';
var jsonObj = JSON.parse(rawText);
var key = 'key';
var val = jsonObj[key].join(',');
console.log('val: '  +val );
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы