Coder Social home page Coder Social logo

Comments (6)

mcatanzariti avatar mcatanzariti commented on June 19, 2024

Basically or means that you are trying to deserialize a string c# type but the read cbor type is not a text string.

If you give me the full callstack, I will be able to give you more details

from dahomey.cbor.

jtorvald avatar jtorvald commented on June 19, 2024

Unhandled Exception: Dahomey.Cbor.CborException: [231] Expected major type TextString (3)
at Dahomey.Cbor.Serialization.CborReader.Expect(CborMajorType majorType) in/src/Dahomey.Cbor/Serialization/CborReader.cs:line 698
at Dahomey.Cbor.Serialization.CborReader.ReadRawString() in/src/Dahomey.Cbor/Serialization/CborReader.cs:line 262
at Dahomey.Cbor.Serialization.Converters.ObjectConverter1.ReadMapItem(CborReader& reader, MapReaderContext& context) in/src/Dahomey.Cbor/Serialization/Converters/ObjectConverter.cs:line 238 at Dahomey.Cbor.Serialization.CborReader.ReadMap[TC](ICborMapReader1 mapReader, TC& context) in/src/Dahomey.Cbor/Serialization/CborReader.cs:line 337
at Dahomey.Cbor.Serialization.Converters.ObjectConverter1.Read(CborReader& reader) in/src/Dahomey.Cbor/Serialization/Converters/ObjectConverter.cs:line 133 at Dahomey.Cbor.Serialization.Converters.MemberConverter2.Read(CborReader& reader, Object obj) in/src/Dahomey.Cbor/Serialization/Converters/MemberConverter.cs:line 51
at Dahomey.Cbor.Serialization.Converters.ObjectConverter1.ReadValue(CborReader& reader, Object obj, ReadOnlySpan1 memberName) in/src/Dahomey.Cbor/Serialization/Converters/ObjectConverter.cs:line 174
at Dahomey.Cbor.Serialization.Converters.ObjectConverter1.ReadMapItem(CborReader& reader, MapReaderContext& context) in/src/Dahomey.Cbor/Serialization/Converters/ObjectConverter.cs:line 299 at Dahomey.Cbor.Serialization.CborReader.ReadMap[TC](ICborMapReader1 mapReader, TC& context) in/src/Dahomey.Cbor/Serialization/CborReader.cs:line 337
at Dahomey.Cbor.Serialization.Converters.ObjectConverter1.Read(CborReader& reader) in/src/Dahomey.Cbor/Serialization/Converters/ObjectConverter.cs:line 133 at Dahomey.Cbor.Serialization.Converters.AbstractCollectionConverter2.ReadArrayItem(CborReader& reader, ReaderContext& context) in/src/Dahomey.Cbor/Serialization/Converters/AbstractCollectionConverter.cs:line 73
at Dahomey.Cbor.Serialization.CborReader.ReadArray[TC](ICborArrayReader1 arrayReader, TC& context) in/src/Dahomey.Cbor/Serialization/CborReader.cs:line 355 at Dahomey.Cbor.Serialization.Converters.AbstractCollectionConverter2.Read(CborReader& reader) in/src/Dahomey.Cbor/Serialization/Converters/AbstractCollectionConverter.cs:line 40
at Dahomey.Cbor.Serialization.Converters.MemberConverter2.Read(CborReader& reader, Object obj) in/src/Dahomey.Cbor/Serialization/Converters/MemberConverter.cs:line 51 at Dahomey.Cbor.Serialization.Converters.ObjectConverter1.ReadValue(CborReader& reader, Object obj, ReadOnlySpan1 memberName) in/src/Dahomey.Cbor/Serialization/Converters/ObjectConverter.cs:line 174 at Dahomey.Cbor.Serialization.Converters.ObjectConverter1.ReadMapItem(CborReader& reader, MapReaderContext& context) in/src/Dahomey.Cbor/Serialization/Converters/ObjectConverter.cs:line 299
at Dahomey.Cbor.Serialization.CborReader.ReadMap[TC](ICborMapReader1 mapReader, TC& context) in/src/Dahomey.Cbor/Serialization/CborReader.cs:line 337 at Dahomey.Cbor.Serialization.Converters.ObjectConverter1.Read(CborReader& reader) in/src/Dahomey.Cbor/Serialization/Converters/ObjectConverter.cs:line 133
at Dahomey.Cbor.Serialization.Converters.AbstractCollectionConverter2.ReadArrayItem(CborReader& reader, ReaderContext& context) in/src/Dahomey.Cbor/Serialization/Converters/AbstractCollectionConverter.cs:line 73 at Dahomey.Cbor.Serialization.CborReader.ReadArray[TC](ICborArrayReader1 arrayReader, TC& context) in/src/Dahomey.Cbor/Serialization/CborReader.cs:line 355
at Dahomey.Cbor.Serialization.Converters.AbstractCollectionConverter2.Read(CborReader& reader) in/src/Dahomey.Cbor/Serialization/Converters/AbstractCollectionConverter.cs:line 40 at Dahomey.Cbor.Serialization.Converters.MemberConverter2.Read(CborReader& reader, Object obj) in/src/Dahomey.Cbor/Serialization/Converters/MemberConverter.cs:line 51
at Dahomey.Cbor.Serialization.Converters.ObjectConverter1.ReadValue(CborReader& reader, Object obj, ReadOnlySpan1 memberName) in/src/Dahomey.Cbor/Serialization/Converters/ObjectConverter.cs:line 174
at Dahomey.Cbor.Serialization.Converters.ObjectConverter1.ReadMapItem(CborReader& reader, MapReaderContext& context) in/src/Dahomey.Cbor/Serialization/Converters/ObjectConverter.cs:line 272 at Dahomey.Cbor.Serialization.CborReader.ReadMap[TC](ICborMapReader1 mapReader, TC& context) in/src/Dahomey.Cbor/Serialization/CborReader.cs:line 337
at Dahomey.Cbor.Serialization.Converters.ObjectConverter1.Read(CborReader& reader) in/src/Dahomey.Cbor/Serialization/Converters/ObjectConverter.cs:line 133 at Dahomey.Cbor.Cbor.Deserialize[T](ReadOnlySpan1 buffer, CborOptions options) in/src/Dahomey.Cbor/Cbor.cs:line 62
at Dahomey.Cbor.Cbor.DeserializeAsync[T](Stream stream, CborOptions options) in/src/Dahomey.Cbor/Cbor.cs:line 24
at CLI.Program.Test() in /Program.cs:line 117
at CLI.Program.Main(String[] args) in /Program.cs:line 21

from dahomey.cbor.

mcatanzariti avatar mcatanzariti commented on June 19, 2024

It seems, an ObjectConverter is trying to deserialize a member name and thus is expecting to find a TextString Cbor major type but finds another type instead.

The problem occurs at byte 231 in the input Cbor buffer. (number into brackets)

If it helps, please could you close the issue?
If it does not, please provide your C# classes and the input buffer.

Thank you

from dahomey.cbor.

jtorvald avatar jtorvald commented on June 19, 2024

Didn't manage to figure it out yet. The library encodes it fine but on the decode it gives this error. I will write a test for it and either fix the bug or commit the test.

from dahomey.cbor.

jtorvald avatar jtorvald commented on June 19, 2024

Added a test in pull request #37

from dahomey.cbor.

mcatanzariti avatar mcatanzariti commented on June 19, 2024

It seems the Cbor buffer you added to Issue0034.cs is not valid and thus does match the provided json string.

You can verify here the invalidity of the provided Cbor buffer:
http://cbor.me/?bytes=A266726573756C7481A362696400646B657973F66C7061727469636970616E747383A262696418476475736572A9624964636A3166684C656E677468434D006647656E64657200644E616D65664AC3B87267656E6443697479F6675461674C696E65F666417661746172F6634167650069497343686172697479F4A262696418486475736572A9624964636E3268684C656E677468434D006647656E64657200644E616D65664A65726F6D796443697479F6675461674C696E65F666417661746172F6634167650069497343686172697479F4A262696418496475736572A96249646371336B684C656E677468434D006647656E64657200644E616D65664D61676769656443697479F6675461674C696E65F666417661746172F6634167650069497343686172697479F46673746174757318C8

And this is the Cbor buffer matching the provided json string:
http://cbor.me/?bytes=A1(66(726573756C74)-81(A1(6C(7061727469636970616E7473)-83(A2(62(6964)-18.47-64(75736572)-A2(62(6964)-63(6A3166)-64(6E616D65)-67(4AC3B87267656E)))-A2(62(6964)-18.48-64(75736572)-A2(62(6964)-63(6E3268)-64(6E616D65)-66(4A65726F6D79)))-A2(62(6964)-18.49-64(75736572)-A2(62(6964)-63(71336B)-64(6E616D65)-66(4D6167676965)))))))

from dahomey.cbor.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.