From 2515d42a14e32f2dd54191f0044bdd4e308ea81f Mon Sep 17 00:00:00 2001 From: Max Hilbrunner Date: Fri, 2 Feb 2018 05:32:12 +0100 Subject: [PATCH] [DOCS] parse_json: Objects do not keep key order Document JSON not guaranteeing key order. (cherry picked from commit 82b8f1729dd2d0d1e574628e82261e2a21809a96) --- doc/classes/@GDScript.xml | 1 + doc/classes/JSON.xml | 2 +- doc/classes/JSONParseResult.xml | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/classes/@GDScript.xml b/doc/classes/@GDScript.xml index d4bd937f491..4e9a6a5fc0a 100644 --- a/doc/classes/@GDScript.xml +++ b/doc/classes/@GDScript.xml @@ -608,6 +608,7 @@ Parse JSON text to a Variant (use [method typeof] to check if it is what you expect). Be aware that the JSON specification does not define integer or float types, but only a number type. Therefore, parsing a JSON text will convert all numerical values to [float] types. + Note that JSON objects do not preserve key order like Godot dictionaries, thus you should not rely on keys being in a certain order if a dictionary is constructed from JSON. In contrast, JSON arrays retain the order of their elements: [codeblock] p = parse_json('["a", "b", "c"]') if typeof(p) == TYPE_ARRAY: diff --git a/doc/classes/JSON.xml b/doc/classes/JSON.xml index e69c05c3df8..078c293fc0d 100644 --- a/doc/classes/JSON.xml +++ b/doc/classes/JSON.xml @@ -4,7 +4,7 @@ Helper class for parsing JSON data. - Helper class for parsing JSON data. For usage example, see [JSONParseResult]. + Helper class for parsing JSON data. For usage example and other important hints, see [JSONParseResult]. diff --git a/doc/classes/JSONParseResult.xml b/doc/classes/JSONParseResult.xml index 424720a8717..0e8d9b66fac 100644 --- a/doc/classes/JSONParseResult.xml +++ b/doc/classes/JSONParseResult.xml @@ -24,7 +24,8 @@ A [Variant] containing the parsed JSON. Use typeof() to check if it is what you expect. For example, if JSON source starts with curly braces ([code]{}[/code]) a [Dictionary] will be returned, if JSON source starts with braces ([code][][/code]) an [Array] will be returned. - [i]Be aware that the JSON specification does not define integer or float types, but only a number type. Therefore, parsing a JSON text will convert all numerical values to float types.[/i] + [i]Be aware that the JSON specification does not define integer or float types, but only a number type. Therefore, parsing a JSON text will convert all numerical values to float types. + Note that JSON objects do not preserve key order like Godot dictionaries, thus you should not rely on keys being in a certain order if a dictionary is constructed from JSON. In contrast, JSON arrays retain the order of their elements:[/i] [codeblock] p = JSON.parse('["hello", "world", "!"]') if typeof(p) == TYPE_ARRAY: