У меня есть следующий действующий JSON следующим образом,
{
"cancelled": false,
"text": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<PrintLetterBarcodeData uid=\"345135084445\" name=\"Venkatasiva M\" gender=\"M\" yob=\"1985\" co=\"S/O Narayana\" vtc=\"Pamidi vari palem\" dist=\"Guntur\" state=\"Andhra Pradesh\" pc=\"522112\"/>",
"format": "QR_CODE"
}
Как я могу извлечь uid и личные данные (имя, пол и yob) из файла JSON.
Я бы порекомендовал конвертировать текст вашего JSON файла, и это возможно по-разному:
//Your JSON file data...
var returnJSONFile = {
"cancelled": false,
"text": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<PrintLetterBarcodeData uid=\"345135084445\" name=\"Venkatasiva M\" gender=\"M\" yob=\"1985\" co=\"S/O Narayana\" vtc=\"Pamidi vari palem\" dist=\"Guntur\" state=\"Andhra Pradesh\" pc=\"522112\"/>",
"format": "QR_CODE"
};
//Object Initialization...
var x2js = new X2JS();
//Convert XML to JSON...
var xml2Json = JSON.stringify(x2js.xml_str2json(returnJSONFile.text));
alert(xml2Json);
Пожалуйста, проверьте мой JSFIDDLE для большего понимания.
Я выполняю это, используя библиотеку x2js.
Эта библиотека предоставляет XML для JSON (объекты JavaScript) и наоборот для преобразования JavaScript. Библиотека очень маленькая и не требует каких-либо других дополнительных библиотек.
Функции API
- новый X2JS() - для создания вашего экземпляра для доступа ко всем функциям библиотеки. Также вы можете указать дополнительные параметры конфигурации здесь
- X2JS.xml2json - конвертировать XML, указанный как объект DOM в JSON
- X2JS.json2xml - Преобразование JSON в объект XML DOM
- X2JS.xml_str2json - преобразовать XML, указанный как строка в JSON
- X2JS.json2xml_str - Преобразование строки JSON в XML
Надеюсь, это поможет вам хорошо!
Есть много способов, но простым способом вы можете получить текст (ваш xml) от json. Затем вы передаете это следующей функции, которая вернет вам json входного XML.
// Changes XML to JSON
function xmlToJson(xml) {
// Create the return object
var obj = {};
if (xml.nodeType == 1) { // element
// do attributes
if (xml.attributes.length > 0) {
obj["@attributes"] = {};
for (var j = 0; j < xml.attributes.length; j++) {
var attribute = xml.attributes.item(j);
obj["@attributes"][attribute.nodeName] = attribute.nodeValue;
}
}
} else if (xml.nodeType == 3) { // text
obj = xml.nodeValue;
}
// do children
if (xml.hasChildNodes()) {
for(var i = 0; i < xml.childNodes.length; i++) {
var item = xml.childNodes.item(i);
var nodeName = item.nodeName;
if (typeof(obj[nodeName]) == "undefined") {
obj[nodeName] = xmlToJson(item);
} else {
if (typeof(obj[nodeName].push) == "undefined") {
var old = obj[nodeName];
obj[nodeName] = [];
obj[nodeName].push(old);
}
obj[nodeName].push(xmlToJson(item));
}
}
}
return obj;
};
Функция вернет вам json, чтобы вы могли легко извлечь желаемый узел.