ObjectToJsonArrayConverter.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import json
  2. class ObjectToJsonArrayConverter:
  3. @staticmethod
  4. def convert(obj):
  5. def process_value(value):
  6. if isinstance(value, dict):
  7. return ObjectToJsonArrayConverter.convert(value)
  8. elif not isinstance(value, list):
  9. return [value]
  10. return value
  11. result = []
  12. for key, value in obj.items():
  13. processed_value = process_value(value)
  14. result.append({
  15. "key": key,
  16. "value": processed_value
  17. })
  18. return result
  19. @staticmethod
  20. def to_json(obj, indent=None):
  21. converted = ObjectToJsonArrayConverter.convert(obj)
  22. return json.dumps(converted, indent=indent, ensure_ascii=False)
  23. # 使用示例
  24. if __name__ == "__main__":
  25. original_obj = {
  26. "name": "Test",
  27. "hobbies": ["Reading", "Swimming"],
  28. "properties": {
  29. "desc": "英俊潇洒",
  30. "nested": {
  31. "age": 25
  32. }
  33. }
  34. }
  35. # 转换对象
  36. converter = ObjectToJsonArrayConverter()
  37. converted_json = converter.to_json(original_obj, indent=4)
  38. print(converted_json)