使用Cookie从JSON获取对象

时间:2019-03-02 12:54:09

标签: json cookies

我正在使用一个PHP脚本,该脚本在此目录int中包含一些json文件 例如打电话给我,我必须访问content/languages/ 使用js读取cookie中的有效语言的任何提示。

例如,当我访问此链接时:domain.com/?=frensh langugae cookie将其值更改为英语

有什么想法吗?

`

1 个答案:

答案 0 :(得分:1)

此行可能有助于您的想法

首先在您的旁边插入此js函数

function readFile(file, callback) {
    var rawFile = new XMLHttpRequest();
    rawFile.overrideMimeType("application/json");
    rawFile.open("GET", file, true);
    rawFile.onreadystatechange = function() {
            if (rawFile.readyState === 4 && rawFile.status === 200) {
                    callback(rawFile.responseText);
            }
    }
    rawFile.send(null);
}

function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for (var i = 0; i < ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') {
                    c = c.substring(1);
            }
            if (c.indexOf(name) == 0) {
                    return c.substring(name.length, c.length);
            }
    }
    return "";
}

然后就像您说的关于语言cookie一样,您可以使用以下js行:

var dataJSON;
readFile("content/languages/"+getCookie("language")+".json", function(text) {
    dataJSON = JSON.parse(text); 
}); 

如果您在语言Cookie中具有英语值,则结果类似于content/languages/english.json

如果您的json对象就是这样,那么接下来便是

{
    "test": {
        "test1"                 : "test2",
     }
}

您只需写dataJSON.test.test1来打印test2