我有一个json对象,由AJAX请求返回,我遇到了一些麻烦,.length因为它一直在返回undefined.只是想知道我是否正确使用它:
console.log(data.length);
console.log(data.phones.length);
Run Code Online (Sandbox Code Playgroud)
它们都返回,undefined即使它们是有效的对象.
更新:
返回的JSON对象的示例:
{"reqStatus":true,"phones":{"one":{"number":"XXXXXXXXXX","type":"mobile"},"two":{"number":"XXXXXXXXXX","type":"mobile"}}}
Run Code Online (Sandbox Code Playgroud) 我有Json字符串,如下所示
{
"JsonValues":{
"id": "MyID",
"values": {
"value1":{
"id": "100",
"diaplayName": "MyValue1"
},
"value2":{
"id": "200",
"diaplayName": "MyValue2"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想将Json字符串转换为以下类
class ValueSet
{
[JsonProperty("id")]
public string id
{
get;
set;
}
[JsonProperty("values")]
public List<Value> values
{
get;
set;
}
}
class Value
{
public string id
{
get;
set;
}
public string DiaplayName
{
get;
set;
}
}
Run Code Online (Sandbox Code Playgroud)
我的反序列化代码是
JavaScriptSerializer js = new JavaScriptSerializer();
StreamReader sr = new StreamReader(@"ValueSetJsonString.txt");
string jsonString = sr.ReadToEnd();
var items = JsonConvert.DeserializeObject<ValueSet>(jsonString); …Run Code Online (Sandbox Code Playgroud) 我想在javascript中创建以下数据结构:
d = {"foo": [3, 77, 100], "bar": [10], "baz": [99], "biff": [10]}
Run Code Online (Sandbox Code Playgroud)
我的起始数据结构是一个字典列表:
input = [{"key": "foo", "val": 3}, {"key": "bar", "val": 10}, {"key": "foo", "val": 100}, {"key": "baz", "val": 99}, {"key": "biff", "val": 10}, {"key": "foo", "val": 77]
Run Code Online (Sandbox Code Playgroud)
如何生成所需的数据结构?以下代码似乎没有将值附加到值数组.
var d = {}
for (var i in input) {
var datum = input[i];
d[datum.key] = datum.val
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将 json 字符串转换为数组,但当我解析它时,我仍然得到 json 代码作为回报。
var slag = [];
for(var i=0; i < data.length; i++)
{
var string = JSON.stringify(data[i]);
var parse = JSON.parse(string)
slag.push(parse);
}
console.log(slag);
Run Code Online (Sandbox Code Playgroud)
现在我仍然得到这个输出
0: {id: "4", club: "driver", afstand: "230", shot: "straight", uitvoering: "perfect"}
1: {id: "9", club: "ijzer7", afstand: "140", shot: "straight", uitvoering: "perfect"}
Run Code Online (Sandbox Code Playgroud)
但我想要在数组中这样的东西
[4, "driver", 240, "straight", "perfect"]
Run Code Online (Sandbox Code Playgroud) export class DuyurularPage {
duyurular: any;
loading: any;
constructor(public navCtrl: NavController, public navParams: NavParams, public loadingPage: LoadingController,
platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) {
this.loading = this.loadingPage.create({
content: `
<ion-spinner></ion-spinner>`
});
platform.ready().then(() => {
statusBar.styleDefault();
splashScreen.hide();
var notificationOpenedCallback = function (jsonData) {
this.duyurular = jsonData.notification.payload;
};
alert
window["plugins"].OneSignal
.startInit("12312412412412", "1231241212")
.handleNotificationOpened(notificationOpenedCallback)
.endInit();
});
}
}
Run Code Online (Sandbox Code Playgroud)
var notificationOpenedCallback = function...←在这个功能里面,我无法访问this.duyurular.
我必须duyurular从json 编写这个数组().我怎样才能做到这一点?