51 parent::__construct( $text, $modelId );
63 $this->jsonParse ??= FormatJson::parse( $this->
getText() );
71 return $this->
getData()->isGood();
82 return FormatJson::encode( $this->
getData()->getValue(),
"\t", FormatJson::UTF8_OK );
94 if ( is_object( $val ) ) {
97 } elseif ( is_array( $val ) ) {
103 $table = Html::rawElement(
'table', [
'class' =>
'mw-json mw-json-single-value' ],
104 Html::rawElement(
'tbody', [],
105 Html::rawElement(
'tr', [],
112 return Html::rawElement(
'div', [
'class' =>
'noresize' ], $table );
125 foreach ( $mapping as $key => $val ) {
126 $rows[] = $this->
objectRow( $key, $val );
130 $rows[] = Html::rawElement(
'tr', [],
132 wfMessage(
'content-json-empty-object' )->text()
136 return Html::rawElement(
'table', [
'class' =>
'mw-json' ],
137 Html::rawElement(
'tbody', [], implode(
'', $rows ) )
150 $th = Html::rawElement(
'th', [], $thContent );
152 return Html::rawElement(
'tr', [], $th . $td );
165 foreach ( $mapping as $val ) {
170 $rows[] = Html::rawElement(
'tr', [],
172 wfMessage(
'content-json-empty-array' )->text()
176 return Html::rawElement(
'table', [
'class' =>
'mw-json' ],
177 Html::rawElement(
'tbody', [], implode(
"\n", $rows ) )
189 return Html::rawElement(
'tr', [], $td );
199 if ( is_object( $val ) ) {
200 return Html::rawElement(
'td', [], $this->
objectTable( $val ) );
203 if ( is_array( $val ) ) {
204 return Html::rawElement(
'td', [], $this->
arrayTable( $val ) );
217 if ( is_string( $val ) ) {
220 return '"' . $val .
'"';
222 return FormatJson::encode( $val );
226class_alias( JsonContent::class,
'JsonContent' );
wfMessage( $key,... $params)
This is the function for getting translated interface messages.
JSON text content that can be viewed and edit directly by users.
primitiveValue( $val)
Construct text representing a JSON primitive value.
beautifyJSON()
Pretty-print JSON.
rootValueTable( $val)
Construct HTML table representation of any JSON value.
arrayTable( $mapping)
Create HTML table representing a JSON array.
getData()
Decodes the JSON string.
__construct( $text, $modelId=CONTENT_MODEL_JSON)
objectTable( $mapping)
Create HTML table representing a JSON object.
arrayRow( $val)
Create HTML table row representing the value in an array.
valueCell( $val)
Construct HTML table cell representing any JSON value.
objectRow( $key, $val)
Create HTML table row representing one object property.
Content object implementation for representing flat text.
getText()
Returns the text represented by this Content object, as a string.