xowiki::Page instproc json_data (public)
<instance of xowiki::Page> json_data
Defined in /var/www/openacs/packages/xowiki/tcl/json-procs.tcl
Collect all non-transient attributes as typed JSON members. Resolve instance attributes through form metadata without applying defaults.
- Returns:
- Flat list of name/type/payload triples for an ns_json object.
- Testcases:
- No testcase defined.
Source code: set members {} foreach name [lsort [:info vars]] { if {[string match __* $name]} { continue } if {[:array exists $name]} { set entries {} foreach key [lsort [:array names $name]] { lappend entries $key string [:set ${name}($key)] } lappend members $name object $entries continue } set value [:set $name] if {$name eq "instance_attributes" && [:istype ::xowiki::PageInstance]} { set entries {} # Resolve effective form constraints, including @fields/@cr_fields. set form_fields [:create_form_fields [:field_names -form [:get_form]]] dict for {att stored_value} $value { if {[string match __* $att]} { continue } set f [:lookup_form_field -name $att $form_fields] lassign [$f json_value $stored_value] type payload lappend entries $att $type $payload } lappend members $name object $entries } else { lassign [::xowiki::json_scalar [:json_attribute_type $name] $value] type payload lappend members $name $type $payload } } return $membersXQL Not present: Generic, PostgreSQL, Oracle
![[i]](/resources/acs-subsite/ZoomIn16.gif)