1

I've developed an application where is possible to import data from a JSON file.

This is the code I'm using to deserialize JSON:

var json_serializer = new JavaScriptSerializer();
var json_tpp = json.tpp;
ThermalPowerPlant tpp = json_serializer.Deserialize<ThermalPowerPlant>(json_tpp);

Everything was working fine, but lately I've modified the ThermalPowerPlant class to include a PDF that I save as byte array.

So, now, my JSON contains this field and if I try to import it again, application returns an exception that says it can not convert type String to Byte Array.

How can I handle this case?

EDIT

This is the byte array field in my JSON:

"Map": "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TNx506OCStPM9Ps8di6u0GQYWJNA52ej1m884jzyaFgV5y9fnqRJabQPbVvu7OlRQWxjbsGNCGFSPqIbh80XzzTfMydNk0ojj/rTqfPL+e3Pf51Ts6H3Q8tuwPSoJHMcTD9iZ+Of+F7rJgneMBt6T7TshkmP+tP9e72ht9Cz8vagG4husi/aKX798vj56benz7rTFk/PxdvTl3PcrXRH6hLzXM2mk7u2i18o6tG9UOgWqt9825h/pTB/tpp8pQgDyVeKn80dx/g1wmXELxJ9b+4kcWr/H8y/HkcKZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqCjw8L1R5cGUvUGFnZS9NZWRpYUJveFswIDAgODQyIDU5NV0vUmVzb3VyY2VzPDwvRm9udDw8L0YxIDEgMCBSL0YyIDIgMCBSPj4+Pi9Db250ZW50cyAzIDAgUi9QYXJlbnQgNCAwIFI+PgplbmRvYmoKMSAwIG9iago8PC9UeXBlL0ZvbnQvU3VidHlwZS9UeXBlMS9CYXNlRm9udC9IZWx2ZXRpY2EtQm9sZC9FbmNvZGluZy9XaW5BbnNpRW5jb2Rpbmc+PgplbmRvYmoKMiAwIG9iago8PC9UeXBlL0ZvbnQvU3VidHlwZS9UeXBlMS9CYXNlRm9udC9IZWx2ZXRpY2EvRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nPj4KZW5kb2JqCjQgMCBvYmoKPDwvVHlwZS9QYWdlcy9Db3VudCAxL0tpZHNbNSAwIFJdPj4KZW5kb2JqCjYgMCBvYmoKPDwvVHlwZS9DYXRhbG9nL1BhZ2VzIDQgMCBSPj4KZW5kb2JqCjcgMCBvYmoKPDwvUHJvZHVjZXIoaVRleHRTaGFycJIgNS41LjggqTIwMDAtMjAxNSBpVGV4dCBHcm91cCBOViBcKEFHUEwtdmVyc2lvblwpKS9DcmVhdGlvbkRhdGUoRDoyMDE2MDQxMTEzMDAwOCswMCcwMCcpL01vZERhdGUoRDoyMDE2MDQxMTEzMDAwOCswMCcwMCcpPj4KZW5kb2JqCnhyZWYKMCA4CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwNTc1NyAwMDAwMCBuIAowMDAwMDA1ODUwIDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwNTkzOCAwMDAwMCBuIAowMDAwMDA1NjM2IDAwMDAwIG4gCjAwMDAwMDU5ODkgMDAwMDAgbiAKMDAwMDAwNjAzNCAwMDAwMCBuIAp0cmFpbGVyCjw8L1NpemUgOC9Sb290IDYgMCBSL0luZm8gNyAwIFIvSUQgWzxmNzAwMjI5ZDUxNzljNDZlNzNiMTFlZThiNTc0NmUxMj48ZjcwMDIyOWQ1MTc5YzQ2ZTczYjExZWU4YjU3NDZlMTI+XT4+CiVpVGV4dC01LjUuOApzdGFydHhyZWYKNjE5NgolJUVPRgo="

PS: I've also checked my JSON and it is correctly formatted.

9
  • How does your JSON represent that field? It would be really helpful if you'd simply provide a minimal reproducible example rather than snippets and history... I doubt that the database part is relevant, for example. (I'd also recommend that you start following .NET naming conventions, e.g. jsonSerializer rather than json_serializer. Commented Apr 14, 2016 at 7:53
  • Can we see an example of this field? It's likely it's base64 rather than an array of bytes Commented Apr 14, 2016 at 7:55
  • 1
    Try JSON.NET. Commented Apr 14, 2016 at 7:57
  • I'm scared when this question is for a software that interacts with thermal power plants. I hope it's a game or something :-) Commented Apr 14, 2016 at 8:07
  • @Jcl If you quickly throw that string at a base64 decoder, you'll notice it's a encoded PDF. Commented Apr 14, 2016 at 8:07

3 Answers 3

4

Your field is Base64. You'll need to define your property as a string (because it is a string, even if it represents a byte array).

Then you can convert it like this:

var myArr = Convert.FromBase64String(tpp.map);
Sign up to request clarification or add additional context in comments.

Comments

2

Replace JavaScriptSerializer with JSON.NET And this code works perfectly:

class Program
{
    public class SomeClass
    {
        public string SomeProperty { get; set; }

        public byte[] ByteArrayProperty { get; set; }
    }



    static void Main()
    {
        SomeClass sc = new SomeClass()
        {
            SomeProperty = "la la la",
            ByteArrayProperty = new byte[] {1, 2, 3}
        };

        string json = JsonConvert.SerializeObject(sc);

        SomeClass newSC = JsonConvert.DeserializeObject<SomeClass>(json);

    }
}

EDIT

json = "{\"SomeProperty\":\"la la la\",\"ByteArrayProperty\":\"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TNx506OCStPM9Ps8di6u0GQYWJNA52ej1m884jzyaFgV5y9fnqRJabQPbVvu7OlRQWxjbsGNCGFSPqIbh80XzzTfMydNk0ojj/rTqfPL+e3Pf51Ts6H3Q8tuwPSoJHMcTD9iZ+Of+F7rJgneMBt6T7TshkmP+tP9e72ht9Cz8vagG4husi/aKX798vj56benz7rTFk/PxdvTl3PcrXRH6hLzXM2mk7u2i18o6tG9UOgWqt9825h/pTB/tpp8pQgDyVeKn80dx/g1wmXELxJ9b+4kcWr/H8y/HkcKZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqCjw8L1R5cGUvUGFnZS9NZWRpYUJveFswIDAgODQyIDU5NV0vUmVzb3VyY2VzPDwvRm9udDw8L0YxIDEgMCBSL0YyIDIgMCBSPj4+Pi9Db250ZW50cyAzIDAgUi9QYXJlbnQgNCAwIFI+PgplbmRvYmoKMSAwIG9iago8PC9UeXBlL0ZvbnQvU3VidHlwZS9UeXBlMS9CYXNlRm9udC9IZWx2ZXRpY2EtQm9sZC9FbmNvZGluZy9XaW5BbnNpRW5jb2Rpbmc+PgplbmRvYmoKMiAwIG9iago8PC9UeXBlL0ZvbnQvU3VidHlwZS9UeXBlMS9CYXNlRm9udC9IZWx2ZXRpY2EvRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nPj4KZW5kb2JqCjQgMCBvYmoKPDwvVHlwZS9QYWdlcy9Db3VudCAxL0tpZHNbNSAwIFJdPj4KZW5kb2JqCjYgMCBvYmoKPDwvVHlwZS9DYXRhbG9nL1BhZ2VzIDQgMCBSPj4KZW5kb2JqCjcgMCBvYmoKPDwvUHJvZHVjZXIoaVRleHRTaGFycJIgNS41LjggqTIwMDAtMjAxNSBpVGV4dCBHcm91cCBOViBcKEFHUEwtdmVyc2lvblwpKS9DcmVhdGlvbkRhdGUoRDoyMDE2MDQxMTEzMDAwOCswMCcwMCcpL01vZERhdGUoRDoyMDE2MDQxMTEzMDAwOCswMCcwMCcpPj4KZW5kb2JqCnhyZWYKMCA4CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwNTc1NyAwMDAwMCBuIAowMDAwMDA1ODUwIDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwNTkzOCAwMDAwMCBuIAowMDAwMDA1NjM2IDAwMDAwIG4gCjAwMDAwMDU5ODkgMDAwMDAgbiAKMDAwMDAwNjAzNCAwMDAwMCBuIAp0cmFpbGVyCjw8L1NpemUgOC9Sb290IDYgMCBSL0luZm8gNyAwIFIvSUQgWzxmNzAwMjI5ZDUxNzljNDZlNzNiMTFlZThiNTc0NmUxMj48ZjcwMDIyOWQ1MTc5YzQ2ZTczYjExZWU4YjU3NDZlMTI+XT4+CiVpVGV4dC01LjUuOApzdGFydHhyZWYKNjE5NgolJUVPRgo=\"}";

newSC = JsonConvert.DeserializeObject<SomeClass>(json);

Works perfectly. ByteArrayProperty is fill with bytes without errors.

3 Comments

This code doesn't show deserialization of a string to an array. SerializeObject would create a JSON array for the ByteArrayProperty, not a Base64 encoded string. What does json contain in this case?
@PanagiotisKanavos JSON is {"SomeProperty":"la la la","ByteArrayProperty":"AQID"}. And string base64Encoded = "AQID"; byte[] data = System.Convert.FromBase64String(base64Encoded); give proper array.
Thanks @BWA! Your solution works perfectly for me! Also @Rob solution it can be good (I guess looking at upvotes) but it does not perfectly fits my scenario.
0

Try the accepted solution at (e. g.) Deserializing JSON to abstract class

The asked question comes from another problem, but maybe you need to specify a TypeNameHandling for the JsonSerializerSettings, in order to make a difference between a string and a byte array. The interesting excerpt from the code there (adapted to your problem):

....
var jset = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All };
ThermalPowerPlant tpp = ...;
string json = JsonConvert.SerializeObject(tpp, jset);
....

ThermalPowerPlant tpp2 = (ThermalPowerPlant)JsonConvert.DeserializeObject(json, jset);

Didn't try to compile and maybe you are deserializing in another way, so you might have to improve this thing.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.