json-repair 0.51.0__py3-none-any.whl → 0.52.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- json_repair/parse_object.py +7 -0
- {json_repair-0.51.0.dist-info → json_repair-0.52.0.dist-info}/METADATA +1 -1
- {json_repair-0.51.0.dist-info → json_repair-0.52.0.dist-info}/RECORD +7 -7
- {json_repair-0.51.0.dist-info → json_repair-0.52.0.dist-info}/WHEEL +0 -0
- {json_repair-0.51.0.dist-info → json_repair-0.52.0.dist-info}/entry_points.txt +0 -0
- {json_repair-0.51.0.dist-info → json_repair-0.52.0.dist-info}/licenses/LICENSE +0 -0
- {json_repair-0.51.0.dist-info → json_repair-0.52.0.dist-info}/top_level.txt +0 -0
json_repair/parse_object.py
CHANGED
@@ -10,6 +10,7 @@ if TYPE_CHECKING:
|
|
10
10
|
def parse_object(self: "JSONParser") -> dict[str, JSONReturnType]:
|
11
11
|
# <object> ::= '{' [ <member> *(', ' <member>) ] '}' ; A sequence of 'members'
|
12
12
|
obj: dict[str, JSONReturnType] = {}
|
13
|
+
start_index = self.index
|
13
14
|
# Stop when you either find the closing parentheses or you have iterated over the entire string
|
14
15
|
while (self.get_char_at() or "}") != "}":
|
15
16
|
# This is what we expect to find:
|
@@ -113,6 +114,12 @@ def parse_object(self: "JSONParser") -> dict[str, JSONReturnType]:
|
|
113
114
|
|
114
115
|
self.index += 1
|
115
116
|
|
117
|
+
# If the object is empty but also isn't just {}
|
118
|
+
if not obj and self.index - start_index > 2:
|
119
|
+
self.log("Parsed object is empty, we will try to parse this as an array instead")
|
120
|
+
self.index = start_index
|
121
|
+
return self.parse_array()
|
122
|
+
|
116
123
|
# Check if there are more key-value pairs after the closing brace
|
117
124
|
# This handles cases like '{"key": "value"}, "key2": "value2"}'
|
118
125
|
# But only if we're not in a nested context
|
@@ -9,13 +9,13 @@ json_repair/parse_array.py,sha256=-rh65JcfT-FtXiR6s8RYlMfI-6LzVr08ytlDh6Z2CFE,21
|
|
9
9
|
json_repair/parse_boolean_or_null.py,sha256=WMSkvvxsp4wvauBcDqtt9WnLMD5SMoxeRfZFXp3FEBc,890
|
10
10
|
json_repair/parse_comment.py,sha256=JHtQ_QlxOvPNnMh7lhUaoTjFGelqjhTNq7qn9xUE7SU,2648
|
11
11
|
json_repair/parse_number.py,sha256=33zAtkbuVzi9Lqjxu7cXn9WlVzd3WjRx9Ln_LFzVL4o,1259
|
12
|
-
json_repair/parse_object.py,sha256=
|
12
|
+
json_repair/parse_object.py,sha256=xMpO64sYW0JmUtW75BTD0EdPQjY7PYVgu4tHVXrWB6s,5582
|
13
13
|
json_repair/parse_string.py,sha256=7PX7eIjez6-y2Dgl2njxRC7FyV-j-WmW6RVhlXrDEfk,24379
|
14
14
|
json_repair/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
15
15
|
json_repair/string_file_wrapper.py,sha256=tGkWBEUPE-CZPf4uSM5NE9oSDTpskX0myJiXsl-gbds,4333
|
16
|
-
json_repair-0.
|
17
|
-
json_repair-0.
|
18
|
-
json_repair-0.
|
19
|
-
json_repair-0.
|
20
|
-
json_repair-0.
|
21
|
-
json_repair-0.
|
16
|
+
json_repair-0.52.0.dist-info/licenses/LICENSE,sha256=wrjQo8MhNrNCicXtMe3MHmS-fx8AmQk1ue8AQwiiFV8,1076
|
17
|
+
json_repair-0.52.0.dist-info/METADATA,sha256=5U1qCzwC1eD8aFb3tZVt-JqPyxQ4BjePyqrczePlmYs,11027
|
18
|
+
json_repair-0.52.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
19
|
+
json_repair-0.52.0.dist-info/entry_points.txt,sha256=SNfge3zPSP-ASqriYU9r3NAPaXdseYr7ciPMKdV2uSw,57
|
20
|
+
json_repair-0.52.0.dist-info/top_level.txt,sha256=7-VZwZN2CgB_n0NlSLk-rEUFh8ug21lESbsblOYuZqw,12
|
21
|
+
json_repair-0.52.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|