0

Why I get the following error at offset 6 with the following code. It makes an HTTP Request, gets a Json back, should go through the Json and create the object IMDBInfo. The json is valid, obviously processing, and the data class is as easy as it could be..., but I don't get the point of the error:

Error:

Exception in thread "main" kotlinx.serialization.json.internal.JsonDecodingException: Unexpected JSON token at offset 6: Expected beginning of the string, but got {
JSON input: {"d":[{"i":{"height":741,"imageUrl":.....
    at kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:24)
    ...

Code:

class StreamingAvailability() {
        var IMDBName : String = ""
    
        fun findOriginalTitle(title: String) = runBlocking {
            val client = HttpClient(Apache) {
                install(JsonFeature) {
                    serializer = KotlinxSerializer(kotlinx.serialization.json.Json {
                        prettyPrint = true
                        isLenient = true
                        ignoreUnknownKeys = true
                        coerceInputValues = true
                        allowStructuredMapKeys = true
                    })
                }
            }
            val result : IMDBInfo = client.get {
                url {
                    protocol =  URLProtocol.HTTPS
                    encodedPath = "auto-complete"
                    host = "imdb8.p.rapidapi.com"
                }
                parameter("q", title)
                headers {
                    append(HttpHeaders.Accept, "application/json")
                    append(HttpHeaders.ContentType, ContentType.Application.Json)
                    append(HttpHeaders.UserAgent, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36")
                    append(HttpHeaders.Authorization, API_KEY)
                    append("X-Rapidapi-Key", API_KEY)
                    append("X-Rapidapi-Host", "imdb8.p.rapidapi.com")
                }
            }
    
            println(result.d)
        }
    }

Data Classes:

import kotlinx.serialization.Serializable

@Serializable data class D(
    val l: String
)
    @Serializable data class IMDBInfo(
    val d: List<D>,
)

JSON which is valid and processed in the response:

{
    "d": [{
        "i": {
            "height": 800,
            "imageUrl": "https://m.media-amazon.com/images/M/MV5BMTMzNDkzMTcyOV5BMl5BanBnXkFtZTcwNDIzMjM2MQ@@._V1_.jpg",
            "width": 550
        },
        "id": "tt1080016",
        "l": "Ice Age: Dawn of the Dinosaurs",
        "q": "feature",
        "rank": 7936,
        "s": "Ray Romano, John Leguizamo",
        "v": [{
            "i": {
                "height": 360,
                "imageUrl": "https://m.media-amazon.com/images/M/MV5BMTMyODMyMDY3MF5BMl5BanBnXkFtZTcwMTg2MTM0Mg@@._V1_.jpg",
                "width": 480
            },
            "id": "vi3380019993",
            "l": "Ice Age: Dawn of the Dinosaurs -- Trailer #2",
            "s": "2:30"
        }, {
            "i": {
                "height": 360,
                "imageUrl": "https://m.media-amazon.com/images/M/MV5BMjFkMjY3NzYtNTkzOS00ZWM4LThhN2MtZTk0MTczMGRjZmNiXkEyXkFqcGdeQXVyNzU1NzE3NTg@._V1_.jpg",
                "width": 480
            },
            "id": "vi64291353",
            "l": "Ice Age: Dawn of the Dinosaurs",
            "s": "0:59"
        }, {
            "i": {
                "height": 360,
                "imageUrl": "https://m.media-amazon.com/images/M/MV5BMTg1NTgwNzg5M15BMl5BanBnXkFtZTgwOTc4NzkxMzE@._V1_.jpg",
                "width": 480
            },
            "id": "vi2023162649",
            "l": "Ice Age: Dawn of the Dinosaurs -- Trailer #1",
            "s": "2:34"
        }],
        "vt": 5,
        "y": 2009
    }, {
        "i": {
            "height": 500,
            "imageUrl": "https://m.media-amazon.com/images/M/MV5BMjE1NTEwMTEwOF5BMl5BanBnXkFtZTcwMDA2MDQyOQ@@._V1_.jpg",
            "width": 357
        },
        "id": "tt1907779",
        "l": "The Dinosaur Project",
        "q": "feature",
        "rank": 39963,
        "s": "Richard Dillane, Peter Brooke",
        "v": [{
            "i": {
                "height": 480,
                "imageUrl": "https://m.media-amazon.com/images/M/MV5BMTg3ODAxMTg4OF5BMl5BanBnXkFtZTcwNTg0OTI4OA@@._V1_.jpg",
                "width": 640
            },
            "id": "vi3951666969",
            "l": "The Dinosaur Project Trailer",
            "s": "2:11"
        }],
        "vt": 1,
        "y": 2012
    }, {
        "i": {
            "height": 789,
            "imageUrl": "https://m.media-amazon.com/images/M/MV5BMTk0MTI1NTI1MF5BMl5BanBnXkFtZTcwMDg2Mzc4OQ@@._V1_.jpg",
            "width": 603
        },
        "id": "tt2303110",
        "l": "Rise of the Dinosaurs",
        "q": "feature",
        "rank": 46988,
        "s": "Gary Stretch, Corin Nemec",
        "y": 2013
    }, {
        "i": {
            "height": 1285,
            "imageUrl": "https://m.media-amazon.com/images/M/MV5BMWI4ZjZmYTktOWIxNS00MmMyLTk5YzctNGQ4ZDg3MmIxYmZkXkEyXkFqcGdeQXVyODg1Njg2Njc@._V1_.jpg",
            "width": 900
        },
        "id": "tt7818384",
        "l": "Dino the Dinosaur",
        "q": "TV series",
        "rank": 65868,
        "s": "June Yoon",
        "y": 2016,
        "yr": "2016-2019"
    }, {
        "i": {
            "height": 475,
            "imageUrl": "https://m.media-amazon.com/images/M/MV5BMTU2NDkyODcxM15BMl5BanBnXkFtZTcwNTA0MzQyMQ@@._V1_.jpg",
            "width": 301
        },
        "id": "tt0136639",
        "l": "Extreme Dinosaurs",
        "q": "TV series",
        "rank": 83132,
        "s": "Scott McNeil, Cusse Mankuma",
        "y": 1997,
        "yr": "1997-1997"
    }, {
        "i": {
            "height": 475,
            "imageUrl": "https://m.media-amazon.com/images/M/MV5BMTIzODM4NTYyMV5BMl5BanBnXkFtZTcwODYzMzAzMQ@@._V1_.jpg",
            "width": 253
        },
        "id": "tt0103400",
        "l": "The Dinosaurs!",
        "q": "TV series",
        "rank": 189562,
        "s": "Barbara Feldon, Robert Bakker",
        "y": 1992,
        "yr": "1992-"
    }, {
        "i": {
            "height": 2048,
            "imageUrl": "https://m.media-amazon.com/images/M/MV5BNGFlNDczMjMtNmQ1OS00MTJjLTk4NDQtNWU2OGY4Y2M2NDdlXkEyXkFqcGdeQXVyNjE4OTE4OTc@._V1_.jpg",
            "width": 1418
        },
        "id": "tt14162824",
        "l": "The Dinosaur",
        "q": "feature",
        "rank": 211135,
        "s": "Veikko Aaltonen, Rauni Mollberg",
        "y": 2021
    }, {
        "i": {
            "height": 720,
            "imageUrl": "https://m.media-amazon.com/images/M/MV5BYjQ3MTU3ZjgtNDA5Zi00N2EwLWExNjctZWJhMzFlMGVjOGJjXkEyXkFqcGdeQXVyNTg0NTkzNTk@._V1_.jpg",
            "width": 1280
        },
        "id": "tt6877360",
        "l": "The Day the Dinosaurs Died",
        "q": "TV movie",
        "rank": 212976,
        "s": "Alice Roberts, Ben Garrod",
        "y": 2017
    }],
    "q": "diedinos",
    "v": 1
}

1 Answer 1

1

Just rename the class D to something that has more than 1 symbol. I've created an issue for this really weird behavior.

Sign up to request clarification or add additional context in comments.

1 Comment

Wow, you were right, how crazy, I just renamed the class "D" to "Entry" and all worked fine xD Unfortunately I can't comment or upvote your Bugticket, but it is right!

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.