Page 1 of 1

Cannot deserialize the current JSON array

Posted: Wed Mar 15, 2017 6:17 pm
by CrossCech
I updated EPG123 to v1.1.3 from a version that required me to use the special utility. It seemed to work successfully at the time. I was able to update and import the guide into WMC fine. Then after about a week I started getting an error when opening EPG123.exe. The following is the error I see in the command line box behind the gui:
Opening epg123 configuration GUI...
Checking for EPG123 updates ...
Reading configuration file ...
Logging in to Schedules Direct ...
Retrieving membership status ...
Building lineup tabs ...
Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'epg123.sdApi.SdLineupStation' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.
Path 'stations[38]', line 1, position 25699.

I've looked in the forums here to see that needs to be done. I'm not a coder so I'm not sure how to investigate or resolve this issue.

I've actually even installed this on a fresh install on a 2nd pc, to see if the problem was my first pc, but get the same error, but the error shows up in a red dialog box.

Any advice would be appreciated!

Re: Cannot deserialize the current JSON array

Posted: Wed Mar 15, 2017 10:29 pm
by CrossCech
I guess I'm not understanding why or how this got broken on my original pc and every other pc in my house that I've tried installing EPG123 v1.1.3 has this same exact error.

Is there a disconnect between EPG123 and SchedulesDirect that I'm missing? According to the command line box it connects to SD, confirms membership status (which I'm paid up til Oct '17), tries building lineup tabs, then boogers up at that point with Cannot deserialize ....

Since JSON is JavaScript Object Notation ... I even thought to update Java for windows (Version 8 Update 121). Didn't help either.

I assume it has to do with the newtonsoft.json.dll file in the epg123 folder.

Thoughts anyone?

Re: Cannot deserialize the current JSON array

Posted: Wed Mar 15, 2017 10:39 pm
by Space
Javascript has nothing to do with Java.

I would guess that there might be something specific with your lineup that is causing problems. Have you tried other lineups just as a test to see if the same thing happens?

Probably a good idea to post your zip code/provider/lineup so that it can be looked at by Gary.

Re: Cannot deserialize the current JSON array

Posted: Wed Mar 15, 2017 11:05 pm
by CrossCech
Edit* Just realized I hadn't thanked you for your response and help. I really do appreciate getting some help from you and others here, so before continuing on, please accept my gratitude. **

Running windows 10 w/WMC, using 8 combined tuners (PCI/PCI-e Hauppauge cards & HDHR older version) all OTA antenna. Zip code is 83686.

Not sure how I can try other lineups when I'm not actually able to get into the epg123.exe gui because of the error. Error comes up then everything is grayed out therefore preventing me from trying a different lineup / tab.

Ideas?

Re: Cannot deserialize the current JSON array

Posted: Thu Mar 16, 2017 2:59 am
by garyan2
Sorry took so long, I just got to my computer to check this out.

There is, what I think, an error in the return for your lineup from Schedules Direct. Snippit is below. Notice the "[]" brackets below between stationIds 97212 and 32930 that indicate another array, which is empty, and doesn't belong there. I actually don't have a method in my code to handle such an error so we need to get it fixed at the source. Please open a ticket with SD to get the JSON return for your lineup corrected. If you reference this post, rkulagow will get it fixed in no time.

Code: Select all

        }, {
            "stationID": "97212",
            "name": "KYUULD3 (KYUU-LD3)",
            "callsign": "KYUULD3",
            "affiliate": "COMET",
            "broadcastLanguage": ["en"],
            "descriptionLanguage": ["en"],
            "broadcaster": {
                "city": "Boise",
                "state": "ID",
                "postalcode": "83701",
                "country": "United States"
            },
            "stationLogo": [{
                "URL": "https:\/\/s3.amazonaws.com\/schedulesdirect\/assets\/stationLogos\/s97051_h3_aa.png",
                "height": 270,
                "width": 360,
                "md5": "9aff73ecfcc265885b3c68",
                "source": "Gracenote"
            }],
            "logo": {
                "URL": "https:\/\/s3.amazonaws.com\/schedulesdirect\/assets\/stationLogos\/s97051_h3_aa.png",
                "height": 270,
                "width": 360,
                "md5": "9aff73ecfcc265885b3c68"
            }
        },
        [], {
            "stationID": "32930",
            "name": "KCLPCA (KCLP-CA)",
            "callsign": "KCLPCA",
            "broadcastLanguage": ["en"],
            "descriptionLanguage": ["en"],
            "broadcaster": {
                "city": "Salt Lake City",
                "state": "UT",
                "postalcode": "84104",
                "country": "United States"
            }
        }, {

Re: Cannot deserialize the current JSON array

Posted: Thu Mar 16, 2017 12:36 pm
by 12noon
Yeah, SD errors are tricky to deal with because the user can't tell if it's the application or the source data. You might find it useful to have EPG123 catch such JSON-format exceptions and display a message box telling the user what's happened and include the JSON exception text with the path to the MXF file so they can include it in the support ticket for SD (and then exit cleanly). Then users won't have to come to the forum and ask you diagnose every SD error. ;-)

Re: Cannot deserialize the current JSON array

Posted: Thu Mar 16, 2017 3:27 pm
by Space
It's always best to catch any errors and display a meaningful error message rather than have the program crash, but I understand how difficult it can be to catch every possible error :)

Re: Cannot deserialize the current JSON array

Posted: Thu Mar 16, 2017 3:48 pm
by rkulagow
I've forced a rebuild of the lineup on the server; please refresh and let me know if that fixed the issue.

Re: Cannot deserialize the current JSON array

Posted: Thu Mar 16, 2017 4:48 pm
by CrossCech
Wow!

Go to bed and then wake up to people working behind the scenes to resolve my issue. I was about to send a message again through email to SD and found instead a request to refresh and see if EPG123 is working again. It is!

Thanks so much guys!

Re: Cannot deserialize the current JSON array

Posted: Tue Apr 04, 2017 5:00 am
by BigPinkDragon286
Seem to be experiencing the same issue. Wasn't sure if a new thread should be started, or if I should just post in this one as the OP's issue seems to have been resolved, and this may be a continuing issue with SD and epg123.

I usually download the maximum number of days from SD during updates and only noticed the JSON error as a result of WMC reporting it was low on guide data. Attempting to run epg123 manually brought the error up.

A quick search brought this thread up.

Running both Windows 7 and Windows 8.1 w/WMC, using OTA tuners. Zip code is 97132.

Re: Cannot deserialize the current JSON array

Posted: Tue Apr 04, 2017 7:27 am
by garyan2
Yup, same thing. Please open a ticket with Schedules Direct to fix the lineup.

Code: Select all

        }, {
            "stationID": "102820",
            "name": "KEVELD2 (KEVE-LD2)",
            "callsign": "KEVELD2",
            "broadcastLanguage": ["en"],
            "descriptionLanguage": ["en"]
        },
        [], {
            "stationID": "102822",
            "name": "KEVELD4 (KEVE-LD4)",
            "callsign": "KEVELD4",
            "affiliate": "ESPRNZA",
            "broadcastLanguage": ["es"],
            "descriptionLanguage": ["es"],
            "stationLogo": [{
                "URL": "https:\/\/s3.amazonaws.com\/schedulesdirect\/assets\/stationLogos\/s65095_h3_aa.png",
                "height": 270,
                "width": 360,
                "md5": "c6a56fb49b3ba9149b3e5d",
                "source": "Gracenote"
            }],

Re: Cannot deserialize the current JSON array

Posted: Tue Apr 04, 2017 6:56 pm
by stuartm
Hi Gary,
Since this seems to be a recurring problem with SD, is it something you can catch/work around without failing a guide update?
Know you can't correct every problem that might occur in the input data stream but as much hardening as possible is always a good thing.

Re: Cannot deserialize the current JSON array

Posted: Tue Apr 04, 2017 7:10 pm
by rkulagow
Hi - when opening a ticket, please don't use the Schedules Direct forum if you've having a specific issue. Instead, open a ticket at the Schedules Direct website, because there's metadata in the ticket that I use to troubleshoot what's happening.