Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Json对象(反)序列化。具有类层次结构的类型化语言_Javascript_Json_Scala_Types_Jvm - Fatal编程技术网

Javascript Json对象(反)序列化。具有类层次结构的类型化语言

Javascript Json对象(反)序列化。具有类层次结构的类型化语言,javascript,json,scala,types,jvm,Javascript,Json,Scala,Types,Jvm,我在web客户机-服务器应用程序中遇到了JSON问题 上下文:scala(可以是任何具有继承性的类型化语言)、typescript+angularjs、NoSql postgresql中的json表示、发送到web客户端的相同json 如何将类型添加到json表示以获得以下功能: 描述类似于列表的泛型 支持在javascript/typescript世界中轻松使用继承 可以通过json反序列化器逐行反序列化(如SAX),以使用最少的内存实现快速转换 向对象添加属性,如{myList:(…),(…

我在web客户机-服务器应用程序中遇到了JSON问题

上下文:scala(可以是任何具有继承性的类型化语言)、typescript+angularjs、NoSql postgresql中的json表示、发送到web客户端的相同json

如何将类型添加到json表示以获得以下功能:

  • 描述类似于列表的泛型
  • 支持在javascript/typescript世界中轻松使用继承
  • 可以通过json反序列化器逐行反序列化(如SAX),以使用最少的内存实现快速转换
  • 向对象添加属性,如{myList:(…),(…),type:?}会干扰第3点,因为无法保证属性顺序

    添加类型作为属性名List#Integer#:{myList:(…),(…)}会由于到处都有额外的包装器/前缀而使代码在客户端变得难看

    如何解决这个问题?也许有人知道Scala json库已经支持类型了


    许多库只是假设您知道要加载的类型…

    解决方法:只有在服务器端才需要优化的反序列化。对于web客户端,我将JSON从List#Integer#:{myList:(…),(…)}转换为{myList:(…),(…),键入:“List#Integer#”}

    向每个对象添加类型节点将使用框架、组件进行推断,即:angular tree在每个节点上只接受一个子容器。那么拖放就不起作用了。使用“展开类型”属性更容易预测。

    请查看和。它们都与JSON无关,但有点像是针对动态类型接收者的,因为动态类型接收者可能没有aprior或模式知识