标签: jsonstream

如何使用流来JSON字符串化Node.js中的大型嵌套对象?

我有一个大的javascript对象,我想转换为JSON并写入文件.我想我可以使用像这样的流来做到这一点

  var fs = require('fs');
  var JSONStream = require('JSONStream');
  var st = JSONStream.stringifyObject()
             .pipe(fs.createWriteStream('./output_file.js'))

  st.write(large_object);
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,我收到一个错误:

stream.js:94
  throw er; // Unhandled stream error in pipe.
        ^
TypeError: Invalid non-string/buffer chunk
    at validChunk (_stream_writable.js:153:14)
    at WriteStream.Writable.write (_stream_writable.js:182:12)
Run Code Online (Sandbox Code Playgroud)

所以显然我不能写一个对象stringifyObject.我不确定下一步是什么.我需要将对象转换为缓冲区?通过一些转换流运行对象并将其传递给strinigfyObject

io json stream node.js jsonstream

6
推荐指数
1
解决办法
4407
查看次数

如何处理角度为5的弹簧启动2发出的json流

Spring Boot 2 WebFlux在新版本中生成Json流

例如

@GetMapping(value = "stream", produces = APPLICATION_STREAM_JSON_VALUE)
public Flux<Data> stream() {
    return Flux.interval(Duration.ofSeconds(1)).map(Data::new);
}
Run Code Online (Sandbox Code Playgroud)

将每隔一秒产生一次新的数据

{"value":"1"}
{"value":"2"}
{"value":"3"}
{"value":"4"}
{"value":"5"}
{"value":"6"}
Run Code Online (Sandbox Code Playgroud)

我已经尝试过angular 5 httpclient

findAll(): Observable<Data> {
   return this._http.get<Data>(this.url);
}
Run Code Online (Sandbox Code Playgroud)

但它不适合我,因为我想被反应它不会发送结果,因为它缓存结果,直到连接colsed

我想问一下在角度5中处理这个Json的最佳方法是什么

spring-boot jsonstream angular

6
推荐指数
2
解决办法
1594
查看次数

如何使用 webflux 端点从 React 生成 json 流

我想了解如何使用 WebFlux Restcontroller 从 React 生成 json 流。我的第一个尝试迫使我解析为文本而不是 json,但我感觉我在做一些奇怪的事情。我决定投入精力阅读周围的示例,我发现一个返回 org.reactivestreams.Publisher 而不是返回 WebFlux 的示例。

我发现一个有点旧的主题可以帮助我(Unable to Consume Webflux Streaming Response in React-Native client),但它没有一个答案。好吧,它促使我在某个地方读到 React 可能不符合 Reactive,但这是一篇非常旧的文章。

从互联网上获取样本,如果你查看https://developer.okta.com/blog/2018/09/25/spring-webflux-websockets-react基本上你会发现:

WebFlux 生成 Json 但不流式传输:

RestController producing MediaType.APPLICATION_JSON_VALUE and returning org.reactivestreams.Publisher<the relevant pojo> 
Run Code Online (Sandbox Code Playgroud)

React 消费 json:

 async componentDidMount() {
    const response = await fetch('relevant url');
    const data = await response.json();
  }
Run Code Online (Sandbox Code Playgroud)

我尝试过类似的方法,但有两个显着的区别:

我返回 MediaType.TEXT_EVENT_STREAM_VALUE 因为我相信我应该更喜欢返回流,因为我正在使用无阻塞代码,并且我知道返回 Webflux 更有意义,以便正确利用 Spring 5,而不是返回 org.reactivestreams.Publisher +。

我的 Webflux 休息控制器:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.CrossOrigin;
import …
Run Code Online (Sandbox Code Playgroud)

reactive-programming async-await reactjs jsonstream spring-webflux

5
推荐指数
1
解决办法
2882
查看次数

安装cordova时出错

运行此命令后:

sudo npm install -g cordova
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

npm ERR! notarget No compatible version found: JSONStream@'>=1.0.3-0 <2.0.0-0'
npm ERR! notarget Valid install targets:
npm ERR! notarget ["0.0.0","0.1.0","0.1.1","0.1.2","0.1.3","0.2.0","0.2.1","0.2.2","0.2.3","0.3.0","0.3.1","0.3.2","0.3.3","0.4.0","0.4.1","0.4.2","0.4.3","0.4.4","0.5.0","0.6.0","0.6.1","0.6.2","0.6.3","0.6.4","0.7.0","0.7.1","0.8.0","0.7.2","0.7.3","0.7.4","0.8.1","0.8.2","0.8.3","0.8.4","0.9.0","0.10.0"]
npm ERR! notarget 
npm ERR! notarget This is most likely not a problem with npm itself.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
Run Code Online (Sandbox Code Playgroud)

欢迎帮助.谢谢

npm cordova browserify jsonstream visual-studio-cordova

4
推荐指数
1
解决办法
4074
查看次数

JQ如何将多个对象合二为一

给定以下输入(这是输出的淡化版本,具有另一个复杂查询的 10 万多个对象):

echo '{ "a": { "b":"c", "d":"e" } }{ "a": { "b":"f", "d":"g" } }' | jq '.'
{
  "a": {
    "b": "c",
    "d": "e"
  }
}
{
  "a": {
    "b": "f",
    "d": "g"
  }
}
Run Code Online (Sandbox Code Playgroud)

所需的输出:

{
   "c": "e",
   "f": "g"
}
Run Code Online (Sandbox Code Playgroud)

或(更适合后续使用):

{
   x: {
      "c": "e",
      "f": "g"
   }
}
Run Code Online (Sandbox Code Playgroud)

我一生都无法弄清楚该怎么做。我真正的问题当然是多对象输入数据,我真的不知道它是否是有效的 JSON。Jq 生成并接受它,而 jshon 没有。我尝试了各种可能性,但没有一个能产生我所需要的。我认为这是最有可能的候选人:

echo '{ "a": { "b":"c", "d":"e" } }{ "a": { "b":"f", "d":"g" } }' | jq ' . | { …
Run Code Online (Sandbox Code Playgroud)

json object stream jsonstream jq

4
推荐指数
1
解决办法
2206
查看次数

如何在st中解析来自stdin的无限json数组?

我正在尝试写一个小的替代品i3status,这是一个与符合协议的i3bar通讯的小程序。他们通过stdin和stdout交换消息。

两个方向上的流都是json对象的无限数组。从i3bar到i3status(我要替换)的流的开始看起来像这样:

[
{"name": "some_name_1","instance": "some_inst_1","button": 1,"x": 213,"y": 35}
,{"name": "some_name_1","instance": "some_inst_2","button": 2,"x": 687,"y": 354}
,{"name": "some_name_2","instance": "some_inst","button": 1,"x": 786,"y": 637}
,{"name": "some_name_3","instance": "some_inst","button": 3,"x": 768,"y": 67}
...
Run Code Online (Sandbox Code Playgroud)

这是代表点击的对象的“数组”。该阵列将永远不会关闭。

我的问题现在是:解析此问题的正确方法是什么?

显然,我无法使用该json库,因为这不是有效的json对象。

json go jsonstream

2
推荐指数
1
解决办法
1047
查看次数