JSON Object Extract (PixNodes)
Pull fields out of a JSON object without fighting the key names
- json_object
- object_1
- object_2
- object_3
- object_4
- object_5
- object_6
- object_7
- object_8
- object_9
- object_10
- object_11
- object_12
- object_13
- object_14
- object_15
- object_16
- object_17
- object_18
- object_19
- object_20
- object_21
- object_22
- object_23
- object_24
- object_25
- object_26
- object_27
- object_28
- object_29
- object_30
- object_31
- object_32
- object_33
- object_34
- object_35
- object_36
- object_37
- object_38
- object_39
- object_40
- object_41
- object_42
- object_43
- object_44
- object_45
- object_46
- object_47
- object_48
- object_49
- object_50
- object_51
- object_52
- object_53
- object_54
- object_55
- object_56
- object_57
- object_58
- object_59
- object_60
- object_61
- object_62
- object_63
- object_64
- object_65
- object_66
- object_67
- object_68
- object_69
- object_70
- object_71
- object_72
- object_73
- object_74
- object_75
- object_76
- object_77
- object_78
- object_79
- object_80
- object_81
- object_82
- object_83
- object_84
- object_85
- object_86
- object_87
- object_88
- object_89
- object_90
- object_91
- object_92
- object_93
- object_94
- object_95
- object_96
- object_97
- object_98
- object_99
- object_100
When an LLM node hands you a JSON object, the first thing you need is its fields out and onto separate wires - the prompt goes to the text encoder, the seed to the sampler, the image path to a loader. JSON Object Extract does exactly that: type the keys you want into match_keys and each one comes out its own named output port. It's the extraction half of the pack's JSON workflow, and the sibling of JSON List Pluck, which does the same job for lists.
The standout feature is the forgiving matching. Type prompt and it finds Prompt, prompt_json, the_prompt, even prompts - the node normalizes keys (lowercases, strips separators), tries stem matching, then falls back through a set of common variants. On top of that, if the input is a raw JSON string rather than a parsed object, it'll extract the JSON body, repair broken syntax (single quotes, trailing commas, unclosed braces), and even fall back to a regex grab on the raw text. If you're consuming output from a chat model that renames fields at will, this is the node that absorbs the chaos.
The inputs
json_object(wildcard) - the data. Accepts a parsed dict/list or a JSON string.match_keys(multiline string, defaultobject_1) - one key per line.merge_output(boolean, default off) - flip it on and all matched values are merged into a single object instead of separate ports.
Outputs: object_1 through object_100, in the order of your keys. Matches that come back as dicts or lists pass through as those types; a missing key gives you None (or [] when the data was a string). This is a display-heavy node, so expect a wall of sockets.
Install
Part of Comfyui-PixNodes. ComfyUI Manager → search "PixNodes" → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/pixixai/Comfyui-PixNodes
then restart. (The README's manual-install block references the wrong repo, ComfyUI-AlignLayout - use the URL above.)
Where it fits and where it doesn't
It's the natural companion to the pack's Qwen/Kimi API nodes: those return a raw text response, you coerce it to JSON, and this node splits it into usable parts. It also composes with JSON Mutation - extract first, mutate a field, recombine with Join JSON Object or JSON Object Combine. Just don't mistake the fuzzy matching for a guarantee: stem matching (prompt → prompts) is a convenience, not a spec, and if two fields stem to the same key the winner is whichever the walk finds first. For data where the key names are already exact and stable, the pack's plain JSON KV Split is the more predictable tool.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| json_object | * | — | |
| match_keys | STRING | object_1 | — |
| merge_output | BOOLEAN | false | — |
Outputs (100)
| Name | Type | Description |
|---|---|---|
| object_1 | JSON | — |
| object_2 | JSON | — |
| object_3 | JSON | — |
| object_4 | JSON | — |
| object_5 | JSON | — |
| object_6 | JSON | — |
| object_7 | JSON | — |
| object_8 | JSON | — |
| object_9 | JSON | — |
| object_10 | JSON | — |
| object_11 | JSON | — |
| object_12 | JSON | — |
| object_13 | JSON | — |
| object_14 | JSON | — |
| object_15 | JSON | — |
| object_16 | JSON | — |
| object_17 | JSON | — |
| object_18 | JSON | — |
| object_19 | JSON | — |
| object_20 | JSON | — |
| object_21 | JSON | — |
| object_22 | JSON | — |
| object_23 | JSON | — |
| object_24 | JSON | — |
| object_25 | JSON | — |
| object_26 | JSON | — |
| object_27 | JSON | — |
| object_28 | JSON | — |
| object_29 | JSON | — |
| object_30 | JSON | — |
| object_31 | JSON | — |
| object_32 | JSON | — |
| object_33 | JSON | — |
| object_34 | JSON | — |
| object_35 | JSON | — |
| object_36 | JSON | — |
| object_37 | JSON | — |
| object_38 | JSON | — |
| object_39 | JSON | — |
| object_40 | JSON | — |
| object_41 | JSON | — |
| object_42 | JSON | — |
| object_43 | JSON | — |
| object_44 | JSON | — |
| object_45 | JSON | — |
| object_46 | JSON | — |
| object_47 | JSON | — |
| object_48 | JSON | — |
| object_49 | JSON | — |
| object_50 | JSON | — |
| object_51 | JSON | — |
| object_52 | JSON | — |
| object_53 | JSON | — |
| object_54 | JSON | — |
| object_55 | JSON | — |
| object_56 | JSON | — |
| object_57 | JSON | — |
| object_58 | JSON | — |
| object_59 | JSON | — |
| object_60 | JSON | — |
| object_61 | JSON | — |
| object_62 | JSON | — |
| object_63 | JSON | — |
| object_64 | JSON | — |
| object_65 | JSON | — |
| object_66 | JSON | — |
| object_67 | JSON | — |
| object_68 | JSON | — |
| object_69 | JSON | — |
| object_70 | JSON | — |
| object_71 | JSON | — |
| object_72 | JSON | — |
| object_73 | JSON | — |
| object_74 | JSON | — |
| object_75 | JSON | — |
| object_76 | JSON | — |
| object_77 | JSON | — |
| object_78 | JSON | — |
| object_79 | JSON | — |
| object_80 | JSON | — |
| object_81 | JSON | — |
| object_82 | JSON | — |
| object_83 | JSON | — |
| object_84 | JSON | — |
| object_85 | JSON | — |
| object_86 | JSON | — |
| object_87 | JSON | — |
| object_88 | JSON | — |
| object_89 | JSON | — |
| object_90 | JSON | — |
| object_91 | JSON | — |
| object_92 | JSON | — |
| object_93 | JSON | — |
| object_94 | JSON | — |
| object_95 | JSON | — |
| object_96 | JSON | — |
| object_97 | JSON | — |
| object_98 | JSON | — |
| object_99 | JSON | — |
| object_100 | JSON | — |