我发现了一个新问题,
我想计算@NAME
为节目FACET[]
设置数组@KEY
Myjson
" RESULT":{
"FACET":[
{ "@NAME" : "creator",
"@COUNT" : "20",
"FACET_VALUES":[
{
"@KEY":"Book Company1",
"@VALUE":"13"},
{
"@KEY":"Book Company1์",
"@VALUE":"10"}],
{ "@NAME" : "lang",
"@COUNT" : "70",
"FACET_VALUES":[
{
"@KEY":"tha",
"@VALUE":"33"},
{
"@KEY":"eng",
"@VALUE":"42"}
],
{ "@NAME" : "bnb",
"@COUNT" : "64",
"FACET_VALUES":[
{
.
.
.
]
optionsFn(): void {
this.http.get("my_url")
.subscribe(data =>{
this.date=data.json().RESULT.FACET; //get @NAME
},error=>{
err => console.error(err),
() => console.log('getRepos completed')
);
console.log(this.date);
console.log(this.date);
this.goToapply()
}
goToapply(){
this.http.get("my_url")
.subscribe(data =>{
this.foundRepos=data.json().RESULT.FACET[0,1,2,3.4......].FACET_VALUES; ///get @KEY
},error=>{
console.log(error);
} );
}
...
<ion-label>Filterr</ion-label>
<ion-select [(ngModel)]="refine" (ionChange)="optionsFn();">
<ion-option value="..." *ngFor="let item of date">{{item["@NAME"]}},({{item["@COUNT"]}})</ion-option>
</ion-select>
<ion-list>
<ion-item *ngFor="let item of foundRepos" (click)="itemClicked($event,item)">
<h3> {{ item[@KEY"] }}</h3>
</ion-item>
</ion-list>
这value="..."
我希望将其保留到string
以供使用,但是zi知道这个想法。
示例:计算
@NAME = 3 (creator,lang,bnb)
,然后获取value="..." = 0,1,2 (0==creator ,1==lang ,2==bnb)
当我选择lang
时,我得到1
,我将其用于FACET[1].FACET_VALUES
,以便我得到@KEY
抱歉写错了。我的英语不是很好。
答案 0 :(得分:1)
确定。我想向你指出一个提示。用语言你会变得更好。特别是英语,但更多的是解释您当前的结果和您想要的结果。我相信这会迫使你以比你现在更快的速度学习英语。 (来自非母语人士)
&#34;我想计算@ NAME为show @ KEY&#34;
设置数组FACET []所以,通过返回的JSON我们可以做一些事情,从立即查看你的问题就不那么清楚了(因为我不相信它的质量很差,所以做了+1)或者不是一个好问题。)
所以我应该在帖子中介绍3件事
确定
计算NAME发生的金额
所以你基本上已经得到了这个答案。您提交了此代码
this.http.get("my_url")
.subscribe(data =>{
this.date=data.json().RESULT.FACET; //get @NAME
});
这意味着您已经可以访问FACET数组。计算NAME发生的数量可以通过创建for循环并检查名称是否未定义(从而递增int)或计算来确定NAME总是被定义的事实来完成,因此只需调用this.date.size()
(如果当前正确设置此日期)
获取FACET的数组
这个,你已经通过分配this.date = data.json().RESULT.FACET
来做了。您的this.date
现在包含一个包含FACET对象的数组。就像这样看:JSON(带有JSON中不可能的注释,但仅用于演示目的)=
{ FACET: // declare the main object, called FACET
[ // declaring the FACET as an Array ([] is for creating a list)
{id: 2} //initializing a child of the FACET array
,{id: 3} //initializing the second FACET child.
]
}
因此,这个伪(不现实)JSON拥有2个对象,id = 2
和id = 3
好的,现在您应该了解一些JSON,让我们来看看您的代码看起来如何(考虑到Businnes考虑多个办公室和多个员工)
{
OFFICES" : [
{
"id" : "1",
"location" : "New York",
"employees" : [
{"id" : "1", "fullName" : "Jon Skeet"},
{"id" : "2", "fullName" : "Random Stranger"}
]
},
{
"id" : "2",
"location" : "Amsterdam",
"employees" : [
{"id" : "1", "fullName" : "Ivaro18"},
{"id" : "2", "fullName" : "Some-Random Stranger"}
]
}
]
}
此代码与您的代码基本相同。你现在提出的问题是,从我的回答中获取代码,如何获得所有员工的所有身份或姓名。 (获取构面对象的所有键名称)
现在让我们用打字稿
告诉你someFunction() {
this.http.get('someUrl').map(response => {
console.log(JSON.stringify(response.json())); // check what you actually retrieve
let decoded = response.json();
for(let office of decoded.OFFICE) {
console.log(office.location);
for(let employee of office.employees) {
console.log(employee.fullName);
}
}
});
}
该计划的预期输出
> New York
> Jon Skeet
> Random Stranger
> Amsterdam
> Ivaro18
> Some-Random Stranger
我认为这个伪代码会让你开箱即用,并找到你问题的答案。如果您无法详细说明您想要的输出,我很乐意随时(甚至是周末)帮助您发表评论,我会在有空的时候做出回应!
答案 1 :(得分:0)
@ Ivaro18感谢您的回答。
我想计算@NAME
的金额
用于为FACET设置数组
并显示每FACET[]
的KEY,这似乎是最终目标。
是的,你完全知道我的意思。
但我希望输出是@KEY
FACET[]
个
示例:
<ion-select [(ngModel)]="refine" (ionChange)="optionsFn();">
<ion-option value="..." *ngFor="let item of date">{{item["@NAME"]}},({{item["@COUNT"]}})</ion-option>
</ion-select>
<ion-list>
<ion-item *ngFor="let item of foundRepos" (click)="itemClicked($event,item)">
<h3> {{ item[@KEY"] }}</h3>
</ion-item>
</ion-list>
optionsFn(): void {
this.http.get("my_url")
.subscribe(data =>{
this.date=data.json().RESULT.FACET; //get @NAME
},error=>{
err => console.error(err),
() => console.log('getRepos completed')
);
console.log(this.date);
console.log(this.date);
this.goToapply()
}
goToapply(){
this.http.get("my_url")
.subscribe(data =>{
this.foundRepos=data.json().RESULT.FACET[0,1,2,3.4......].FACET_VALUES; ///get @KEY
},error=>{
console.log(error);
} );
}
来自离子选择的显示creator
,lang
和bnb
,我想要当我选择lang
ion-option value="..."
时
保持number
"@NAME"
@NAME
的计数金额为3和creator
时,离子选项值=&#34; ...&#34; &LT;&LT;是0 lang
时,离子选项值=&#34; ...&#34; &LT;&LT;是1 bnb
时,离子选项值=&#34; ...&#34; &LT;&LT;是2 如果我得到value
,我会将goToapply()
设为FACET[]
bnb
我得到值= 2和console.log this.refine
是显示2
let p = this.refine
,以便p = 2
this.foundRepos=data.json().RESULT.FACET[p].FACET_VALUES;
@KEY
带到ion-list
当我选择lang
输出
> tha
> eng