initial commit
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
class JSONArrayIteratorNode:
|
||||
"""
|
||||
A custom node for iterating through a JSON array and outputting specific objects
|
||||
based on a selection number provided via the node interface.
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
"""
|
||||
Define input parameters for the JSONArrayIteratorNode.
|
||||
"""
|
||||
return {
|
||||
"required": {
|
||||
"json_array": ("JSON", {"default": "[]"}),
|
||||
"selection_number": ("INT", {
|
||||
"default": 0,
|
||||
"min": 0,
|
||||
"max": 9999, # Adjust based on expected maximum array length
|
||||
"step": 1,
|
||||
"display": "number" # Allow users to input or select the index number
|
||||
}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("JSON",) # Output type: the selected JSON object from the array
|
||||
FUNCTION = "iterate" # The entry-point method for this node
|
||||
CATEGORY = "Data Processing" # Category under which the node will appear in the UI
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def iterate(self, json_array, selection_number):
|
||||
print(f"JSONArrayIteratorNode: Iterating with selection_number={selection_number}")
|
||||
print (f"JSONArrayIteratorNode: Iterating with json_array={json_array}")
|
||||
|
||||
# Check if the selection number is within the bounds of the json_array
|
||||
if isinstance(json_array, list) and 0 <= selection_number < len(json_array):
|
||||
selected_object = json_array[selection_number]
|
||||
else:
|
||||
print(f"Selection number {selection_number} is out of bounds for the array length {len(json_array)}.")
|
||||
selected_object = {} # Return an empty object or handle as needed
|
||||
|
||||
return selected_object
|
||||
Reference in New Issue
Block a user