Я нахожу новую проблему, я хотел бы подсчитать @NAME
чтобы установить массив FACET[]
для show @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 знает идею.
Пример: count
@NAME = 3 (creator,lang,bnb)
и getvalue="..." = 0,1,2 (0==creator ,1==lang ,2==bnb)
Когда я выбираюlang
Я получаю1
, я использую это дляFACET[1].FACET_VALUES
, так что я получаю@KEY
Извините, что написал не так. Мой английский не очень хорош.
ОК. есть только совет, который я хотел бы указать на вас. Вы говорите лучше со словами. Не английский, в частности, но больше об объяснении вашего текущего результата и желаемого результата. Я считаю, что это заставит вас изучать английский язык намного быстрее, чем вы сейчас делаете. (исходящий от нелокального динамика)
"Я хотел бы подсчитать @NAME, чтобы установить массив FACET [] для show @KEY"
Таким образом, с возвращенным JSON мы можем сделать пару вещей, которые не совсем понятны, сразу же глядя на ваш вопрос (сделал ли +1, поскольку я не считаю это плохого качества или не является хорошим вопросом),
Итак, есть 3 вещи, которые я должен уделить в своем посте
ОК
Подсчет количества, которое NAME происходит
Так что вы в основном уже получили этот ответ. Вы отправили этот код
this.http.get("my_url").subscribe(data =>{ this.date=data.json().RESULT.FACET;//get @NAME });
Это означает, что у вас уже есть доступ к массиву FACET. Подсчет количества, которое НАЗВАНИЕ происходит, может быть выполнено либо путем создания цикла for, либо проверки того, является ли имя неопределенным (тем самым увеличивая число int) или рассчитывая на то, что NAME всегда определено, поэтому просто вызываем this.date.size()
(если это задано правильно, конечно)
получить массив для FACET
это вы уже делаете, задавая значение this.date = data.json().RESULT.FACET
. this.date
ваш 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
Я думаю, что этот псевдо-код заставит вас думать немного из коробки и найти ответ на свой вопрос. Если вы не можете подробно рассказать о том, что хотите, я буду рад помочь вам в любое время (даже в выходные) просто комментировать, и я отвечу, когда у меня будет время!
@Ivaro18 спасибо за ваши ответы. Я хочу подсчитать сумму @NAME
для установки массива для FACET и показ KEY на FACET[]
который, кажется, является конечной целью.
Да, вы полностью знаете, что я имел в виду. Но я хочу, чтобы вывод был каждый @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);
} );
}
сверху иона-select - creator
шоу, lang
и bnb
, я хочу, чтобы, когда я выбираю lang
ion-option value="..."
чтобы сохранить number
"@NAME"
@NAME
равен 3 иcreator
значение параметра ion = "..." << равно 0lang
is ion-option value = "..." << is 1bnb
, значение ионной опции = "..." << равно 2 и если я получаю value
, я беру его для goToapply()
для набора FACET[]
bnb
я получаю value = 2 и console.log this.refine
is show 2
let p = this.refine
, так что p = 2
this.foundRepos=data.json().RESULT.FACET[p].FACET_VALUES;
для шоу @KEY
в ion-list
Когда я выбираю lang
output,
> tha
> eng
<ion-option [value]="date.size() - 1">
или <ion-option [attr.value]="date.size() -1">
(примечание: можно не проверяю, потому что я нахожусь на мобильном устройстве, возможно, вам придется заменить date.size()
на date.length()
но я не уверен