【发布时间】:2015-07-02 19:45:25
【问题描述】:
我在一个控制器中构建的一个变量中有以下数据作为 JSON。我可以使用工厂/服务访问其他控制器中的这个 json 数据。现在我想修改这个json数据,就像输出json数据一样。
输入Json
[
{
"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"] = ???
我可以在最后几行写什么。我喜欢的原因是将来“我的名字”和“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":[
它应该打印这些变量的实际值,而不是用户名和应用程序名。你能告诉我我在这里做错了什么吗?
提前致谢。
任何帮助将不胜感激。
【问题讨论】:
-
使用
JSON.parse()创建一个javascript对象。然后修改对象,使用JSON.stringify()将其放回字符串中。 -
@JohnCarpenter Json.stringify() 将转换成字符串
-
看我的回答我的意思:)
-
你能用代码检查我更新的问题吗?我该怎么做?
-
我不清楚您的后续问题是什么。您能具体说明我的回答令人困惑的地方吗?
标签: javascript json angularjs ionic-framework ionic