在javascript中使用给定的数据创建Json
Creating Json with the given data in javascript
我有这样的数据:
var a = [Joe,Peter,12345,programmer];
var companies = [xyz,abc,def];
var xyz = [programmer,HR,Tester];
var abc= [HR,Tester];
var def = [programmer,HR,Tester];
我想动态创建这样的 Json 数据
var json = {
"FirsName" : "Joe"
"LastName" : "Peter"
"Phone" : "12345"
"XYZ" : "Checked" // if the company has programmer it should give checked
"abc" : "unchecked" // if the company has programmer it should give unchecked
"def" : "checked"
}
您不能创建引用变量名称*的名为 companies 的数组,因为它们对解释器没有任何意义。相反,创建公司的映射。
var data = [ 'Joe', 'Peter', '12345', 'programmer' ];
var companies = {
'xyz' : [ 'programmer', 'HR','Tester' ],
'abc' : [ 'HR', 'Tester' ],
'def' : [ 'programmer', 'HR,Tester' ]
};
function create(empData) {
var employee = {
firstName : empData[0],
lastName : empData[1],
phone : empData[2]
};
var ocupation = empData[3];
for (var company in companies) {
employee[company] = companies[company].indexOf(ocupation) > -1 ? 'checked' : 'unchecked';
}
return employee;
}
document.getElementsByTagName('body')[0].innerHTML = JSON.stringify(create(data), undefined, ' ');
body {
white-space: pre;
font-family: monospace;
}
结果
{
"firstName": "Joe",
"lastName": "Peter",
"phone": "12345",
"xyz": "checked",
"abc": "unchecked",
"def": "checked"
}
笔记
* 如果该数组包含字符串,正如我假设这是您尝试执行的操作,那么这是不可能的;但是如果您通过它们的变量引用而不是字符串名称来引用它们,那么您需要首先定义变量。
无效
不能在没有作用域的情况下引用变量。
var companies = ["xyz", "abc", "def"];
var xyz = ["Programmer", "HR", "Tester"];
var abc = ["HR", "Tester"];
var def = ["Programmer", "HR", "Tester"];
无效
不能引用尚未定义的变量。
var companies = [xyz, abc, def];
var xyz = ["Programmer", "HR", "Tester"];
var abc = ["HR", "Tester"];
var def = ["Programmer", "HR", "Tester"];
有效
这将创建一个二维数组,但您不知道您指的是哪家公司,因为没有对象键关系。
var xyz = ["Programmer", "HR", "Tester"];
var abc = ["HR", "Tester"];
var def = ["Programmer", "HR", "Tester"];
var companies = [xyz, abc, def];
我不知道
你到底是什么意思,但我这样做的方式是这样的:
var myJson = new Object();
myJson.FirsName= "Joe";
myJson.LastName= "Peter";
myJson.Phone= "12345";
myJson.XYZ= true;
myJson.abc= false;
myJson.def= true;
var jsonString= JSON.stringify(obj);
希望对您有所帮助!
根据您提供的数据,我认为您要决定指定与公司数组值匹配的数组,那么它在 JSON 对象中的值应该是 true,否则为 false。
如果正确,以下内容可能会有所帮助:
var a = ["Joe", "Peter", "12345", "Programmer"];
var companies = ["xyz", "abc", "def"];
var xyz = ["Programmer", "HR", "Tester"];
var abc = ["HR", "Tester"];
var def = ["Programmer", "HR", "Tester"];
var jsonObject = new Object();
jsonObject.FirsName = a[0];
jsonObject.LastName = a[1];
jsonObject.Phone = a[2];
jsonObject.XYZ = xyz.indexOf(a[3]) > -1 ? true : false;
jsonObject.abc = abc.indexOf(a[3]) > -1 ? true : false;
jsonObject.def = def.indexOf(a[3]) > -1 ? true : false;;
var jsonString = JSON.stringify(jsonObject);
document.write(jsonString);
相关文章:
- 使用外部数据创建仪表板(谷歌电子表格)-JavaScript
- 从html表中的输入数据创建图表
- 使用来自不同循环Javascript的数据创建数组
- 在d3forjavascript中,如何为数据创建不同的元素
- 如何使用json数据创建下拉列表
- 使用 mysql 数据创建条形图
- 在javascript中使用给定的数据创建Json
- Jquery:为新数据创建寻呼机(next-prev按钮)
- 为Meteor数据创建编号列表
- 如何创建和下载PDF和docx格式的文件,该文件将从AngularJS中的表中的数据创建
- 为数据创建唯一变量
- 如何使用旧数组中的数据创建新数组
- 使用外部数据创建体式任务
- 将数据从一个工作表复制到另一个工作表;使用目标工作表中的复制数据创建一个表
- 我可以在谷歌地图上使用OpenStreetMap数据创建获取路线吗?如何
- 如何为具有嵌套对象的 JSON 数据创建 Mustache 模板
- 如何使用 import.io 中的数据创建 Web 应用
- 从 CSV 数据创建 D3.js 可折叠树
- 如何使用SQLite数据创建Javascript var
- 使用 AJAX 数据创建注释页选择