Javascript 如何在Angularjs中更改json数据
我在一个控制器中构建了一个变量,其中包含以下数据作为JSON。我可以使用factory/service在其他控制器中访问此json数据。现在我想修改这个json数据,就像修改输出json数据一样 输入JsonJavascript 如何在Angularjs中更改json数据,javascript,json,angularjs,ionic-framework,ionic,Javascript,Json,Angularjs,Ionic Framework,Ionic,我在一个控制器中构建了一个变量,其中包含以下数据作为JSON。我可以使用factory/service在其他控制器中访问此json数据。现在我想修改这个json数据,就像修改输出json数据一样 输入Json [ { "text":"Identity", "checked":true, "timestamp":1435862483093 }, { "text":"Calendar", "checked":t
[
{
"text":"Identity",
"checked":true,
"timestamp":1435862483093
},
{
"text":"Calendar",
"checked":true,
"timestamp":1435862483443
},
]
输出:
{
"myname":{
"Facebook":{
"trackdata":[
{
"text":"Identity",
"checked":true,
"timestamp":1435862483093
},
{
"text":"Calendar",
"checked":true,
"timestamp":1435862483443
}
],
"selecteddata":[
{
"text":"Identity",
"checked":true,
"timestamp":1435862483093
},
{
"text":"Calendar",
"checked":true,
"timestamp":1435862483443
}
]
}
}
}
我在尝试什么:
var trackdata = JSON.stringify(DataService.getTrackedData());
var selecteddata = JSON.stringify(DataService.getSelectedData());
var userJson = {};
userJson["trackdata"] = trackdata;
userJson["selecteddata"] = selecteddata;
userJson["Facebook"] = ???
userJson["myname"] = ???
最后几行我能写些什么。我之所以这样说,是因为将来“myname”和“Facebook”将根据用户输入
更新:2
pmApp.controller('FooterController', function ($scope, $state, DataService) {
$scope.infunc = function () {
console.log("Username : " + DataService.username);
console.log("Application Name : " + DataService.applicationName);
var username = DataService.username;
var applicationName = DataService.username;
$scope.outputJson = {
username: {
applicationName: {
"trackdata": DataService.getTrackedData(),
"selecteddata": DataService.getSelectedData()
}
}
}
/* $scope.outputJson.myname.Facebook.trackdata = ;
$scope.outputJson.myname.Facebook.selecteddata = DataService.getSelectedData();*/
console.log(JSON.stringify($scope.outputJson));
};
});
它给我这样的输出:
"username":{
"applicationName":{
"trackdata":[
它应该打印这些变量的实际值,而不是用户名和应用程序名。你能告诉我我做错了什么吗
提前谢谢
任何帮助都将不胜感激。以下是我的示例代码:
$scope.inputJson = [
{
"text":"Identity",
"checked":true,
"timestamp":1435862483093
},
{
"text":"Calendar",
"checked":true,
"timestamp":1435862483443
}
]
$scope.outputJson = {
"myname": {
"Facebook":{
"trackdata": [],
"selecteddata": []
}
}
}
$scope.outputJson.myname.Facebook.trackdata = $scope.inputJson;
$scope.outputJson.myname.Facebook.selecteddata = $scope.inputJson;
下面是我的示例代码:
$scope.inputJson = [
{
"text":"Identity",
"checked":true,
"timestamp":1435862483093
},
{
"text":"Calendar",
"checked":true,
"timestamp":1435862483443
}
]
$scope.outputJson = {
"myname": {
"Facebook":{
"trackdata": [],
"selecteddata": []
}
}
}
$scope.outputJson.myname.Facebook.trackdata = $scope.inputJson;
$scope.outputJson.myname.Facebook.selecteddata = $scope.inputJson;
下面是我的示例代码:
$scope.inputJson = [
{
"text":"Identity",
"checked":true,
"timestamp":1435862483093
},
{
"text":"Calendar",
"checked":true,
"timestamp":1435862483443
}
]
$scope.outputJson = {
"myname": {
"Facebook":{
"trackdata": [],
"selecteddata": []
}
}
}
$scope.outputJson.myname.Facebook.trackdata = $scope.inputJson;
$scope.outputJson.myname.Facebook.selecteddata = $scope.inputJson;
下面是我的示例代码:
$scope.inputJson = [
{
"text":"Identity",
"checked":true,
"timestamp":1435862483093
},
{
"text":"Calendar",
"checked":true,
"timestamp":1435862483443
}
]
$scope.outputJson = {
"myname": {
"Facebook":{
"trackdata": [],
"selecteddata": []
}
}
}
$scope.outputJson.myname.Facebook.trackdata = $scope.inputJson;
$scope.outputJson.myname.Facebook.selecteddata = $scope.inputJson;
好的,我想到了一个简单的方法:
// parse input in order to modify it
var inputObj = JSON.parse(input);
// create a new object based on your data from your input
var outputObj = {
'myname': {
'Facebook': {
'trackdata': inputObj,
'selecteddata': inputObj
}
}
};
// create new JSON output
var output = JSON.stringify(outputObj);
var input='[{“text”:“Identity”,“checked”:true,“timestamp”:1435862483093},{“text”:“Calendar”,“checked”:true,“timestamp”:1435862483443}';
var inputObj=JSON.parse(输入);
var outputObj={
“我的名字”:{
“Facebook”:{
“trackdata”:inputObj,
“selecteddata”:inputObj
}
}
};
var output=JSON.stringify(outputObj);
$('#input').html(JSON.stringify(inputObj,null,2));
$('#output').html(JSON.stringify(outputObj,null,2))代码>
输入:
输出:
好的,我想到了一些简单的方法:
// parse input in order to modify it
var inputObj = JSON.parse(input);
// create a new object based on your data from your input
var outputObj = {
'myname': {
'Facebook': {
'trackdata': inputObj,
'selecteddata': inputObj
}
}
};
// create new JSON output
var output = JSON.stringify(outputObj);
var input='[{“text”:“Identity”,“checked”:true,“timestamp”:1435862483093},{“text”:“Calendar”,“checked”:true,“timestamp”:1435862483443}';
var inputObj=JSON.parse(输入);
var outputObj={
“我的名字”:{
“Facebook”:{
“trackdata”:inputObj,
“selecteddata”:inputObj
}
}
};
var output=JSON.stringify(outputObj);
$('#input').html(JSON.stringify(inputObj,null,2));
$('#output').html(JSON.stringify(outputObj,null,2))代码>
输入:
输出:
好的,我想到了一些简单的方法:
// parse input in order to modify it
var inputObj = JSON.parse(input);
// create a new object based on your data from your input
var outputObj = {
'myname': {
'Facebook': {
'trackdata': inputObj,
'selecteddata': inputObj
}
}
};
// create new JSON output
var output = JSON.stringify(outputObj);
var input='[{“text”:“Identity”,“checked”:true,“timestamp”:1435862483093},{“text”:“Calendar”,“checked”:true,“timestamp”:1435862483443}';
var inputObj=JSON.parse(输入);
var outputObj={
“我的名字”:{
“Facebook”:{
“trackdata”:inputObj,
“selecteddata”:inputObj
}
}
};
var output=JSON.stringify(outputObj);
$('#input').html(JSON.stringify(inputObj,null,2));
$('#output').html(JSON.stringify(outputObj,null,2))代码>
输入:
输出:
好的,我想到了一些简单的方法:
// parse input in order to modify it
var inputObj = JSON.parse(input);
// create a new object based on your data from your input
var outputObj = {
'myname': {
'Facebook': {
'trackdata': inputObj,
'selecteddata': inputObj
}
}
};
// create new JSON output
var output = JSON.stringify(outputObj);
var input='[{“text”:“Identity”,“checked”:true,“timestamp”:1435862483093},{“text”:“Calendar”,“checked”:true,“timestamp”:1435862483443}';
var inputObj=JSON.parse(输入);
var outputObj={
“我的名字”:{
“Facebook”:{
“trackdata”:inputObj,
“selecteddata”:inputObj
}
}
};
var output=JSON.stringify(outputObj);
$('#input').html(JSON.stringify(inputObj,null,2));
$('#output').html(JSON.stringify(outputObj,null,2))代码>
输入:
输出:
使用JSON.parse()
创建javascript对象。然后修改对象,并使用JSON.stringify()
将其重新转换为字符串。@johncarcenter JSON.stringify()将转换为字符串查看我的答案了解我的意思:)你能用代码检查我更新的问题吗,我该如何做?我不清楚你的后续问题是什么。你能具体说明我的答案有哪些地方让人困惑吗?使用JSON.parse()
创建一个javascript对象。然后修改对象,并使用JSON.stringify()
将其重新转换为字符串。@johncarcenter JSON.stringify()将转换为字符串查看我的答案了解我的意思:)你能用代码检查我更新的问题吗,我该如何做?我不清楚你的后续问题是什么。你能具体说明我的答案有哪些地方让人困惑吗?使用JSON.parse()
创建一个javascript对象。然后修改对象,并使用JSON.stringify()
将其重新转换为字符串。@johncarcenter JSON.stringify()将转换为字符串查看我的答案了解我的意思:)你能用代码检查我更新的问题吗,我该如何做?我不清楚你的后续问题是什么。你能具体说明我的答案有哪些地方让人困惑吗?使用JSON.parse()
创建一个javascript对象。然后修改对象,并使用JSON.stringify()
将其重新转换为字符串。@johncarcenter JSON.stringify()将转换为字符串查看我的答案了解我的意思:)你能用代码检查我更新的问题吗,我该如何做?我不清楚你的后续问题是什么。你能具体说明我的答案有哪些地方让人困惑吗?如果你运行代码段,你应该会看到上面的代码是有效的:)。对于您的特定示例,请将我的代码中的inputObj
替换为DataService.getTrackedData()
谢谢您的回复。我应该替换变量名而不是“myname”和“Facebook”吗?事实上,我的情况每次都不一样。我想从变量中输入这些名称。我已经编辑了我的答案以解决您的问题。还要注意,这是一个编写javascript代码的好地方:)。在那里,您可以测试小代码块,直到您满意为止,然后再将它们添加到较大的代码块中。再次感谢您的回复。检查我更新的问题(更新-2部分),它不工作,因为我想让它工作。我是按照你的模式来设计的。请检查更新的代码。更新中的语法与我在答案中的语法不同。您可以像这样索引对象<代码>对象[fieldName]=“某些v