解析外部JSON文件中的未命名对象

时间:2015-01-31 08:27:59

标签: javascript

我真的想找点事。

陈述: 有一个kog.json file(我无法访问)

它包含类似

的内容
{gold:"or not",
mine:"or hot",
Paris:"i hate one"}

它的未命名对象

我需要的是获取巴黎的数据并将其放在某处,就像一个简单的string一样。

3 个答案:

答案 0 :(得分:1)

如果你有办法获得那个JSON字符串,

JSON.parse()可能就是你要找的。

像...这样的东西。

var data = '{"gold":"or not", "mine":"or hot", "Paris":"i hate one"}';
var object = JSON.parse(data);
console.log(object.Paris);

答案 1 :(得分:0)

一种方法是使用jQuery库的parseJSON。见fiddle

var data = '{"gold":"or not", "mine":"or hot", "Paris":"i hate one"}';
var jsonObject = $.parseJSON(data);
alert(jsonObject.Paris);

答案 2 :(得分:0)

试试这个。

首先,返回带有dataType: text(text / plain)的kog.json文件 这将json文件中的数据作为字符串返回。

 var data = '{gold:"or not",\r\nmine:"o...",\r\nParis:"i hate one"}';

现在删除了不需要的 \ r \ n (换行符)

var formattedData = data.replace(/\r\n/g, '');

最后,这样做了一个不圣洁的评估。

eval("var objLiteral = " + formattedData);

这样我就能像这样得到巴黎

console.log(objLiteral["Paris"]);

JavaScript代码段

var url = "/WebFormsDemo/Samples/kog.json";
window.onload = function () {
    var filePath = url;
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", filePath, false);
    xmlhttp.send(null);
    var data = xmlhttp.responseText;
    //removing the line breaks in your text
    var formattedData = data.replace(/\r\n/g, '');
    eval("var objLiteral = " + formattedData);
    console.log(objLiteral["Paris"]);
};

jQuery Snippet

$(function () {
    $.ajax({
        url: url,
        //force to handle it as text
        dataType: "text",
        success: function (data) {
            //removing the line breaks in your text
            var formattedData = data.replace(/\r\n/g, '');
            eval("var objLiteral = " + formattedData);
            console.log(objLiteral["Paris"]);
        }
    });

});

P.S:你应该真的改变" kog.json"的格式。它的JSON无效。