• # D'autres versions

    Posté par (Mastodon) . En réponse au journal Tous les parsers JSON sont mauvais. Évalué à 5.

    En go, ça passe

    package main
    import (
     "encoding/json"
     "log"
     "os"
    )
    func main() {
     dec := json.NewDecoder(os.Stdin)
     for {
     var v interface{}
     if err := dec.Decode(&v); err != nil {
     log.Println(err)
     return
     }
     }
    }

    En C++ avec RapidJson, ça casse vers 74000 (mais il y a moyen d'utiliser une version itérative, j'ai pas encore trouvé comment, je posterai une mise à jour) :

    #include <rapidjson/document.h>
    #include <rapidjson/filereadstream.h>
    #include <cstdio>
    int main() {
     char readBuffer[2048];
     rapidjson::FileReadStream frs(stdin, readBuffer, sizeof(readBuffer));
     rapidjson::Document d;
     d.ParseStream(frs);
     return 0;
    }