javascript - 如何存储 JSON 文件的内容,以便可以检索多个 JSON 对象及其数据

标签 javascript jquery json

我需要从.JSON文件中获取多个JSON对象中包含的数据,并通过方法将它们输出给用户。每个对象包含两条数据 - 一条给受让人的消息和一条给其他人的一般消息。

以下是 JSON 文件的内容:

{
"Submitted":[
    {
        "assigneeMsg":"This is a new translation job. As a TL-Approver, you are required to provide an estimated delivery date and a price for the job upon transitioning the issue.", 
        "generalMsg":"This job has been submitted to TranslationLoft for review. Upon review, TranslationLoft will reply with a quote containing the price and estimated delivery date."
    }
],
"tl-quoted":[
    {
        "assigneeMsg":"TranslationLoft have approved the job for translation and have quoted an estimated delivery date and the cost to complete the job. As a Client-Approver, you have the option of accepting or rejecting this quote. If you choose to reject the quote, please leave a comment detailing your reasons. Once rejected, TranslationLoft can choose to requote the job if possible but may decide to close the job before progressing further. Upon acceptance of the quote, TranslationLoft will be able to progress with the job as stated.", 
        "generalMsg":"The quote has been sent to the client for review. Please wait for the client to respond with their acceptance or rejection of the quote."
    }
],
"client-accepted":[
    {
        "assigneeMsg":"The quote has been accepted by the client and translation can begin.", 
        "generalMsg":"Acceptance of the quote has been delivered to TranslationLoft. Please wait while the job is transitioned and translation begins."
        }
],
"Client-Rejected":[
    {
        "assigneeMsg":"The quote has been rejected by the client. Please provide a new quote or close the job with a reason for the closure.", 
        "generalMsg":"Rejection of the quote has been delivered to TranslationLoft. Please wait while TranslationLoft reviews the quote and makes their decision regarding a requote."
    }
]
}

这是我想要输出消息的函数的片段:

if (issueStatus === "Submitted") {
  if (user === issueAssignee) {
    msg = ;
  } else {
    msg = ;
  }
} else if (issueStatus === "tl-quoted") {
  if (user === issueAssignee) {
    msg = ;
  } else {
    msg = ;
  }
} else if (issueStatus === "Client-Rejected") {
  if (user === issueAssignee) {
    msg = ;
  } else {
    msg = ;
  }
} else if (issueStatus === "client-accepted") {
  if (user === issueAssignee) {
    msg = ;
  } else {
    msg = ;
  }
}

我希望能够从 JSON 文件中检索数据,以便在我的函数中,我可以调用,例如:

msg = Submitted[0].assigneeMsg;

这样 msg 将获得来自 allocateeeMsg 的数据。

任何帮助将不胜感激。

最佳答案

在我看来,您是在具体询问如何构建数据,而不是如何检索数据。如果您知道如何在一般意义上检索 JSON 数据,那么我相信这就是您想要的:

{
    "Submitted": [
        {
            "assigneeMsg": "Assignee Message 0",
            "generalMsg": "General Message 0"
        },
        {
            "assigneeMsg": "Assignee Message 1",
            "generalMsg": "General Message 1"
        },
        {
            "assigneeMsg": "Assignee Message 2",
            "generalMsg": "General Message 2"
        }
    ],
    "tl-quoted": [
        {
            "assigneeMsg": "Assignee Message 0",
            "generalMsg": "General Message 0"
        },
        {
            "assigneeMsg": "Assignee Message 1",
            "generalMsg": "General Message 1"
        },
        {
            "assigneeMsg": "Assignee Message 2",
            "generalMsg": "General Message 2"
        }
    ],
    "client-accepted": [
        {
            "assigneeMsg": "Assignee Message 0",
            "generalMsg": "General Message 0"
        },
        {
            "assigneeMsg": "Assignee Message 1",
            "generalMsg": "General Message 1"
        },
        {
            "assigneeMsg": "Assignee Message 2",
            "generalMsg": "General Message 2"
        }
    ],
    "Client-Rejected": [
        {
            "assigneeMsg": "Assignee Message 0",
            "generalMsg": "General Message 0"
        },
        {
            "assigneeMsg": "Assignee Message 1",
            "generalMsg": "General Message 1"
        },
        {
            "assigneeMsg": "Assignee Message 2",
            "generalMsg": "General Message 2"
        }
    ]
}

此结构允许您检索每个已提交对象,如下所示:

assignee = Submitted[0].assigneeMsg; // Assignee Message 0
general = Submitted[0].generalMsg; // General Message 0

还有一个:

assignee = Submitted[1].assigneeMsg; // Assignee Message 1
general = Submitted[1].generalMsg; // General Message 1

编辑:如何检索 JSON

这段代码应该足以让您获取数据。假设 JSON 文件位于您的服务器上,位置如下:http://example.com/json/myJsonFile.json

// XML HTTP Request and empty object
var request = new XMLHttpRequest ();
var myObject = {};

// Function to run when request finishes
request.onreadystatechange = function () {
    if (request.readyState === 4 && request.status === 200) {
        myObject = JSON.parse (request.responseText);
    }
};

// Send request for the JSON
request.open ('GET', '/json/myJsonFile.json', true);
request.send ();

关于javascript - 如何存储 JSON 文件的内容,以便可以检索多个 JSON 对象及其数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32009084/

相关文章:

json - 使用 JSON 数据,尝试解析嵌套数据

javascript - JQuery——有没有办法解决这个问题?

javascript - 将元素颜色重置为默认样式表颜色(jQuery、JavaScript)

javascript - 贷款计算器 (jQuery) 无法正常工作

javascript - 下划线过滤器嵌套对象数组

python - 如何在 cayley graph db 中加载 json api

javascript - 删除数组的重复数组: javascript

javascript - keyup 功能不起作用

jquery - 如何设置 jquery 月份选择器的默认日期

javascript - 在 Angularjs 中将 Javascript 对象转换为 JSON 一次