🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.javascript
4 messages
4 total messages Started by Peter May Sun, 09 Oct 2011 13:17
Filtrowanie obiektu JSON-a
#50906
Author: Peter May
Date: Sun, 09 Oct 2011 13:17
65 lines
2129 bytes
Mam taki przykładowy obiekt JSON-a:

{
	"result": "1",
	"get": [
		{
			"type": "test",
			"more": {
				"type": "test1",
			},
			"more2": {
				"qwe": "test2",
				"email": null,
			},
			"more3": null
		},
		{
			"type": "best",
			"more": {
				"type": "test11",
			},
			"more2": {
				"qwe": "test22",
				"email": null,
			},
			"more3": null
		},
	]
}

Potrzebuję przefiltrować wszystkie obiekty w tablicy "get" i zostawić 
tylko te obiekty w tablicy, które będą zawierały dowolny klucz i wartość 
pasująca do poszukiwanego string-a.

Czyli jeśliby przefiltrować wszystkie obiekty w tablicy "get" i zostawić 
te, w których jest dowolny klucz którego wartość będzie zawierać string 
"test22", to wynik byłby taki:

{
	"result": "1",
	"get": [
		{
			"type": "best",
			"more": {
				"type": "test11",
			},
			"more2": {
				"qwe": "test22",
				"email": null,
			},
			"more3": null
		},
	]
}

Wiem, że mógłbym to zrobić pętlami for-in, ale może jest jakiś inny 
sposób, by prze-iterować się po całym obiekcie i sprawdzić czy jakiś 
klucz nie zawiera w swojej wartości określonego stringa?

No i inna sprawa, że jeśli obiekt będzie jeszcze bardziej zagnieżdżony, 
to znów musiałbym dodać kolejną pętlę for-in. A wolałbym mieć jakieś 
bardziej uniwersalne rozwiązanie.

-- 
Peter
Re: Filtrowanie obiektu JSON-a
#50907
Author: KoleS46
Date: Mon, 10 Oct 2011 08:40
1 lines
1225 bytes
jedyne co mi przychodzi na myśl to rekurencja przy dalszym zagnieżdżaniu się struktury.
Re: Filtrowanie obiektu JSON-a
#50908
Author: Peter May
Date: Mon, 10 Oct 2011 10:39
10 lines
1321 bytes
W dniu 2011-10-10 10:40, KoleS46 pisze:
> jedyne co mi przychodzi na myśl to rekurencja przy dalszym zagnieżdżaniu się struktury.

No tak właśnie też o tym myślałem. Niemniej jednak nie chciałem na nowo 
koła wymyślać i może ktoś już widział takie działające rozwiązanie. 
Google sporo daje wyników, ale nie bardzo idzie z tego skorzystać. Może 
źle szukam :/

-- 
Peter
Re: Filtrowanie obiektu JSON-a
#50909
Author: biesiad
Date: Wed, 12 Oct 2011 07:41
5 lines
1527 bytes
Rozwiązanie "na szybko", to oczywiście tylko funkcja rekurencyjna.

Ale gotowce też są w sieci:
JaQL - http://www.jaql.org/
JsonPath - http://goessner.net/articles/JsonPath/
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads