问题标签 [cbor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
473 浏览

parsing - 解析 cbor 流

我正在尝试使用 tinyCBOR 解析 CBOR 流。目标是为“映射类型”编写通用解析代码(因为我不知道在 cbor 流中有多少个键以及它们是哪些)但不是为 json,我只想使用“”获取值,但是为了从键中获取值,我必须知道键。我只是能够通过在函数中传递“ key ”来解析值

但我仍然不清楚。

从 CBOR 流中获取键和值要遵循什么顺序?

例如。以下是我的地图格式数据-

这是来自 cbor.me 链接的二进制格式 -

1.如何从流中获取密钥。喜欢 - 从流中获取 Roll_number 或 AGE?(依次获取键和值也可以)。

2.获取Roll_number值后,如何跳转到下一个元素(“ Age ”)获取“ key ”和“ value ”。

3.如何识别我在“流结束”时到达,现在没有数据??

任何片段代码,如何解析以及需要遵循哪个函数序列。

任何帮助表示赞赏。谢谢!!!

0 投票
0 回答
249 浏览

elastic-stack - 在 elasticsearch 摄取插件中使用 CBOR 格式而不是 JSON

在 Elasticsearch 的 Ingest Attachment Processor Plugin 的文档中提到,“如果不想产生 base64 之间来回转换的开销,可以使用 CBOR 格式而不是 JSON,并将字段指定为字节数组而不是字符串表示。然后处理器将跳过 base64 解码。任何人都可以对此有所了解,或者分享一个如何实现这一目标的例子吗?我需要索引大量具有显着大小的文档。所以我需要尽量减少延迟。

0 投票
1 回答
855 浏览

python - 读取 CBOR 文件时出现 TypeError

我正在使用 CBOR 文件来包含数据的项目。我已经安装cborpip install cbor. 但我无法阅读它。

这是我的代码:

然后它返回这个错误:

如何解决这个问题呢?有没有办法将 CBOR 转换为 JSON 文件,因为我发现在 Python 中使用 JSON 文件更容易。

0 投票
1 回答
280 浏览

kotlin - kotlinx.serialization.cbor.CborDecodingException:预期的地图开始,但找到 78

我试图将 Kotlin 的序列化包之一与以下自定义示例类一起使用。List我将通过添加一个真实类(也需要序列化)来扩展这个类以匹配真实用例,但现在问题只是在于反序列化。我已经设法使序列化工作(在第二个代码片段中有要序列化的对象和结果String),并且似乎反序列化过程需要以相同的方式完成(即,通过使用实例of NullableSerializer) (事实上,我现在还没有找到一种简单而正确的方法来反序列化编码的对象。这是类,简单但想要复杂。

手动测试功能(其值被简单打印)是:

当我尝试运行它时,异常在于Cbor.load调用并且是:

我是整个互联网中唯一一个有这个问题的人吗?

0 投票
0 回答
89 浏览

kotlin - 如何使用 kotlinx.serialization 在 CBOR 对象和 ByteString 上添加 TAG

如何使用 kotlinx.serialization 在 CBOR 对象和 ByteString 上添加 TAG

例子 :- 24(h'A367646F635479706564646F63326A6E616D65537061636573A2666E616D653231A2626262F4626363F4666E616D653232A2627878F4627979F46B72657175657374496E666FAA644B6579306656616C756530644B6579316656616C756531644B6579326656616C756532644B6579336656616C756533644B6579346656616C756534644B6579356656616C756535644B6579366656616C756536644B6579376656616C756537644B6579386656616C756538644B6579396656616C756539')

在这个例子中,我用 24 标记了 byteString。

有没有办法在 kotlin 多平台中使用 kotlinx.serialization 库

0 投票
1 回答
147 浏览

json - 同时支持 serde_json::Value 和 cbor_json::Value

如果我有一个布局未知的 JSON 值,我可以使用以下命令对其进行反序列serde_jsonserde_json::Value

同样,我可以对 CBOR 做同样的事情:

但是,如果我想要一个可以从 JSONCBOR 加载的单一数据结构怎么办。我实际上想要这个:

有没有办法做到这一点,以便我可以将 JSON 或 CBOR 反序列化到这个结构中?

0 投票
1 回答
128 浏览

c# - 找不到类型或命名空间名称“PeterO”

我只是尝试使用带有演示hello.cs程序的https://github.com/peteroupc/CBOR repo 。但我最终遇到了以下问题。

1) 属性PeterO.Cbor没有像其他颜色一样反映。请参考以下代码。

2) hello.cs 程序执行时出错。请从下面的快照中找到相同的内容。

使用的命令:mcs hello.cs -out:hello

编译错误输出消息:

附加信息:

1) dotnet-sdk 和 Visual Studio Code 安装步骤如下:

2) Ubuntu、Dotnet 和 Visual Studio Code 版本详情:

3) dotnet restore 命令输出:

因此,我 在文件 /path/to/repo/CBOR/CBOR.csproj中将PackageId PeterO.Cbor替换 为PackageId Peter Cbor 。然后它给出了如下的构建输出。

我对 Visual Studio 代码和 dotnet 框架也很陌生。

谁能在这个问题上纠正我,让我知道我哪里出错了。

0 投票
0 回答
137 浏览

asynchronous - 如何用 tokio_serde::SymmetricallyFramed::new() 编写类型定义?

我正在尝试使用 serde_tokio 序列化 cbor。
我可以制作一个简单的程序,但我需要将 tokio_serde::SymmetricallyFramed::new() 实际存储在一个结构中以多次使用它。(它消耗插座,这很酷)。

我似乎无法编写存储值的类型。

产生正确的输出。(取自 tokio-serde crate 中的 json 示例,此处:https ://github.com/carllerche/tokio-serde/blob/master/examples/client.rs

我想将“序列化”放入一个结构中(并隐藏它是如何在 fn 中创建的),但我似乎无法编写正确的类型。

但是,我不想把 cbor::Value 放进去。我应该能够把 Serializable 对象放进去。所以我显然在这里走错了方向。tokio-serde crate 中的 JSON 示例很乐意输入/输出 serde_json::Value,但我认为我应该这样做。

提出了关于 Discord 的建议,将第一个示例更改为:

让编译器告诉我类型是什么:

好吧,我不能将_放入类型别名中,或者直接写它。我认为它应该说“impl Serialize”之类的东西,但这还不是一回事。显然,编译器正确地理解了第一个示例,因此其中肯定有一些内容......但是什么?

0 投票
1 回答
276 浏览

rust - 序列化 Vec使用 serde_cbor 到 Rust 中的 CBOR 字节字符串

我想Vec<u8>使用serde_cbor. 我尝试了以下代码:

生成以下输出:

这意味着所有元素都被编码为单个整数。但是,我想将向量编码为 CBOR 字节字符串,即:

我怎么做?

0 投票
1 回答
303 浏览

c++ - nlohmann::detail::parse_error: 解析 CBOR 字符串时出现语法错误:预期长度规范 (0x60-0x7B) 或不确定的字符串类型 (0x7F)

尝试使用nlohmann/json解析一些 CBOR 有效负载:

失败并出现此错误:

libc++abi.dylib:以 nlohmann::detail::parse_error 类型的未捕获异常终止:[json.exception.parse_error.113] 在字节 2 处解析错误:解析 CBOR 字符串时出现语法错误:预期长度规范(0x60-0x7B ) 或不定字符串类型 (0x7F);最后一个字节:0x43

我尝试了其他解码器,它们能够解码该有效载荷。

Python 的cbor包能够对其进行解码:

{b'ret':[13],b'success':真}

cbor.me 的CBOR游乐场能够对其进行解码:

16 字节:

诊断:

是否有一些标志可以传递给nlohmann/json以使其解码?

试图通过无济于事strict=falsejson::from_cbor()