nineteendo / pyvz2

PyVZ2 is a command line utility to modify PvZ2
GNU General Public License v3.0
44 stars 6 forks source link

Support trailing comma's #46

Open Haruma-VN opened 1 year ago

Haruma-VN commented 1 year ago

The tool is super weak on JSON Parsing, and stop instantly if the json is trailing commas but object can have trailing commas.

nineteendo commented 1 year ago

Example: trailing_comma.zip

JSONDecodeError in /storage/emulated/0/Download/trailing_comma.json: Expecting property name enclosed in double quotes: line 3 column 1 (char 19)
Traceback (most recent call last):
  File "<string>", line 583, in conversion
  File "<string>", line 528, in file_encode
  File "/storage/emulated/0/Download/PVZ2tools-alpha/PVZ2tools-alpha/PVZ2tools-alpha/OBBEdit/libraries/pyvz2rton.py", line 362, in encode_root_object
    for key, value in load(file, object_pairs_hook = self.encode_object_pairs).data:
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/json/__init__.py", line 293, in load
    return loads(fp.read(),
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/json/__init__.py", line 359, in loads
    return cls(**kw).decode(s)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/json/decoder.py", line 353, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 3 column 1 (char 19)
nineteendo commented 1 year ago

As you can see, this is caused by the JSON library I'm using. I can't do too much about that, but I'll try fixing it when I rewrite json2rton in C.