Извлечь значение из строковых данных JSON

0

У меня есть следующий JSON-канал, который является типом данных String.

"[
    {
        "str": "<ul><li>Item1<li><li>Item2<li><li>Item3<li><ul>"
    }
][
    {
        "str": "<ul><li>Teacher  Account<li><li>Student Account<li><ul>"
    }
][
    {
        "str": "<ul><li>Corporate<li><li>Accounts<li><ul>"
    }
]"

Как я могу получить значения, чтобы я мог добавить элемент html?

Заранее спасибо.

  • 2
    Ваш JSON недействителен.
Теги:

5 ответов

2
Лучший ответ

вы не можете получать данные с этим неправильным форматом, ваш формат данных JSON должен выглядеть следующим образом:

[
    {"str":"<ul><li>Item1</li><li>Item2</li><li>Item3</li></ul>"},
    {"str":"<ul><li>Teacher  Account</li><li>Student Account</li></ul>"},
    {"str":"<ul><li>Corporate</li><li>Accounts</li></ul>"}
];

затем используйте

$.each( data, function(i, d){
    console.log(d.str);
});

Еще одна вещь, я заметил, что в вашей части HTML, которая также не в правильном формате, вам просто нужно подготовить свои данные json в правильном формате. вы пропустили, чтобы закрыть </li> и </ul>;

вот рабочая демонстрация http://jsfiddle.net/jogesh_pi/tN8AP/

  • 0
    Спасибо, что указали на мой неправильный формат данных JSON и отсутствующие теги </ li> и </ ul>. Разобрался уже. Спасибо.
  • 0
    @Therenho рад помочь вам.
1

ваш JSON недействителен, подтвердите свой JSON ЗДЕСЬ

var a = '[
 {"str": "<ul><li>Item1<li><li>Item2<li><li>Item3<li><ul>"},
 {"str": "<ul><li>Teacher  Account<li><li>Student Account<li><ul>"},
 {"str": "<ul><li>Corporate<li><li>Accounts<li><ul>"}
]';

Вы можете использовать для цикла для извлечения элементов из JSON и добавления элементов

for(var i = 0; i < json.length; i++) {
    $("div").append(json[i].str);
    console.log(json[i].str)
}

ПРЯМОЙ ПРИМЕР

  • 0
    Я не понял, что мой канал JSON был неправильным. Спасибо за указание.
1

Ваш json not valid попробуйте это,

var json=[{"str": "<ul><li>Item1<li><li>Item2<li><li>Item3<li><ul>"},{"str": "<ul><li>Teacher  Account<li><li>Student Account<li><ul>"},{"str": "<ul><li>Corporate<li><li>Accounts<li><ul>"}];
$.each(json, function( i, v ) {
  console.log(v.str)
});

Рабочая демонстрация

  • 0
    Спасибо за ваше предложение. Я хотел бы принять более одного в качестве ответа.
1

Использовать jQuery .each()

$.each(data, function( index, value ) {
  alert( index + ": " + value );
});

Подробнее о jQuery.each()

  • 0
    Привет Рахул, спасибо за ваш ответ. Я попробовал ваше предложение, но я получил "TypeError: invalid" в операнде obj в jquery-latest.js
1

это неправильно Строка строки JSON должна быть такой:

    var strJson = '[
     {"str": "<ul><li>Item1<li><li>Item2<li><li>Item3<li><ul>"},
     {"str": "<ul><li>Teacher  Account<li><li>Student Account<li><ul>"},
     {"str": "<ul><li>Corporate<li><li>Accounts<li><ul>"}
    ]'

и для доступа к этой строке вы можете попробовать этот код.

var objJson = JSON.parse(strJson);
for(var index=0; index<objJson.length; index++) {
    alert(objJson[index].str);
}
  • 0
    Спасибо за ваш ответ. Я уже решил свою проблему!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню