再次序列化时,序列化的对象将包含相同的json内容(跨浏览器的情况)

44

我需要在源对象和目标对象之间执行深层对象比较,这很适合我的用法,而且也很复杂。但是,如果可以比较对象的json表示形式,我可以简化事情。我的意思是,如果可以保证序列化后保留属性的顺序。换句话说,具有两个对象:

{ a: "a", b: "b" }并且{ b: "b", a: "a" }具有相同的内容,但它的JSON表示是不同的。

以下代码段可以描述两种情况:

第一个:

var json = '{"a":"a","b":"b"}';
var x = JSON.parse(json);
var y = JSON.parse(json);
var comparison = JSON.stringify(x) === JSON.stringify(y); // will it always be true?

第二个:

var json = '{"a":"a","b":"b"}';
var x = JSON.parse(json);
var y = JSON.parse(json);

delete y.a;
delete y.b;

y.b = "b"; // Notice the order is changed
y.a = "a"; // Notice the order is changed

var comparison = JSON.stringify(x) === JSON.stringify(y); // will it always be true?

问题:

  • 这两种情况对所有浏览器都适用吗?
  • 还有其他可以使JSON.stringify(x)发生的场景吗?== JSON.stringify(y)
  • 有没有一种方法可以通过实现自己的序列化技术来实现上述保证(例如,序列化之前的排序属性)

就是这样,谢谢!

44

在这里,我分叉和修改JSON 3实现支持JSON内容与排序的对象键,希望对大家有所帮助别人https://github.com/lu4/jsons

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

再次序列化时,序列化的对象将包含相同的json内容(跨浏览器的情况)

来自分类Dev

包含嵌套对象的序列化器

来自分类Dev

Json .Net将平面对象序列化为复杂的对象(在序列化/反序列化时更改对象结构)

来自分类Dev

使用JSON.NET一次序列化一组对象

来自分类Dev

将画布内容序列化为ArrayBuffer并再次反序列化

来自分类Dev

序列化JSON对象

来自分类Dev

WPF浏览器应用程序中的JSON序列化

来自分类Dev

序列化包含对象ArrayList的对象

来自分类Dev

序列化包含对象列表的对象

来自分类Dev

序列化包含对象ArrayList的对象

来自分类Dev

序列化包含NotSerializableException对象的对象

来自分类Dev

反序列化可在相同属性名称下包含不同对象的JSON

来自分类Dev

无法使用 jackson 反序列化包含 2 个具有相同 ID 的对象的 Json

来自分类Dev

从DRF序列化器返回序列化的JSON

来自分类Dev

json 序列化序列化器实例

来自分类Dev

序列化收集类时,将包含的对象加倍

来自分类Dev

包含XML的JSON.Net反序列化对象

来自分类Dev

如何序列化包含图像的对象?

来自分类Dev

序列化包含BufferedImages的对象

来自分类Dev

一键式序列化和显示相同的XML文件到Web浏览器

来自分类Dev

一键式序列化和显示相同的XML文件到Web浏览器

来自分类Dev

将包含对象属性的poco序列化为Json

来自分类Dev

使用PHP中的类型将嵌套对象序列化/反序列化为JSON

来自分类Dev

将JSON反序列化为C#对象-不反序列化任何数据

来自分类Dev

如何使用Jackson将Java Enums序列化和反序列化为JSON对象

来自分类Dev

如何使用Jackson将反序列化的JSON反序列化为忽略键的对象?

来自分类Dev

将JSON反序列化为C#对象-不反序列化任何数据

来自分类Dev

使用Play Framework序列化器将扩展类序列化为Scala中的JSON

来自分类Dev

无法反序列化JSON内容

Related 相关文章

  1. 1

    再次序列化时,序列化的对象将包含相同的json内容(跨浏览器的情况)

  2. 2

    包含嵌套对象的序列化器

  3. 3

    Json .Net将平面对象序列化为复杂的对象(在序列化/反序列化时更改对象结构)

  4. 4

    使用JSON.NET一次序列化一组对象

  5. 5

    将画布内容序列化为ArrayBuffer并再次反序列化

  6. 6

    序列化JSON对象

  7. 7

    WPF浏览器应用程序中的JSON序列化

  8. 8

    序列化包含对象ArrayList的对象

  9. 9

    序列化包含对象列表的对象

  10. 10

    序列化包含对象ArrayList的对象

  11. 11

    序列化包含NotSerializableException对象的对象

  12. 12

    反序列化可在相同属性名称下包含不同对象的JSON

  13. 13

    无法使用 jackson 反序列化包含 2 个具有相同 ID 的对象的 Json

  14. 14

    从DRF序列化器返回序列化的JSON

  15. 15

    json 序列化序列化器实例

  16. 16

    序列化收集类时,将包含的对象加倍

  17. 17

    包含XML的JSON.Net反序列化对象

  18. 18

    如何序列化包含图像的对象?

  19. 19

    序列化包含BufferedImages的对象

  20. 20

    一键式序列化和显示相同的XML文件到Web浏览器

  21. 21

    一键式序列化和显示相同的XML文件到Web浏览器

  22. 22

    将包含对象属性的poco序列化为Json

  23. 23

    使用PHP中的类型将嵌套对象序列化/反序列化为JSON

  24. 24

    将JSON反序列化为C#对象-不反序列化任何数据

  25. 25

    如何使用Jackson将Java Enums序列化和反序列化为JSON对象

  26. 26

    如何使用Jackson将反序列化的JSON反序列化为忽略键的对象?

  27. 27

    将JSON反序列化为C#对象-不反序列化任何数据

  28. 28

    使用Play Framework序列化器将扩展类序列化为Scala中的JSON

  29. 29

    无法反序列化JSON内容

热门标签

归档