C++でJSONをパースするのに、PicoJSONを使っているのですが、次のJSONファイルがどうしても読み込めません。エラーの原因と、解決方法を教えていただけないでしょうか。main.cppの2つ目のfor文内のコメントを取り払うと、エラーメッセージが出ます。

test.json

{"glossary":
    [
        {"title_list":
            [
                {"title": "SGML","primary": 1},
                {"title": "GlossDef","primary": 0},
                {"title": "Abbrev","primary": 3}
            ]
        ,"binding":
            {"design": 1, "page": 1000}
        }
    ]
}

main.cpp

#include <sstream>
#include <fstream>
#include <iostream>
#include <picojson.h>

using namespace std;
using namespace picojson;

int main(void) {
//Declartion
stringstream ss;
ifstream f;

//Read Json file
f.open("test.json", ios::binary);
if(!f.is_open()) {
    return 1;
}
ss << f.rdbuf();
f.close();

//Parse Json data
picojson::value val;
ss >> val;
string err = get_last_error();
if(!err.empty()) {
    cerr << err << endl;
    return -1;
}

object& obj = val.get<object>();

array& glossary = obj["glossary"].get<array>();
cout << "glossary: " << endl;
for (array::iterator it = glossary.begin(); it != glossary.end(); it++) {
    //title_list
    object& tmp = it->get<object>();
    array& title_list = tmp["title_list"].get<array>();
    for (array::iterator it2 = title_list.begin(); it2 != title_list.end(); it2++) {
        object& title_list = it2->get<object>();
        object& title = title_list["title_list"].get<object>();
        //object& primary = title_list["title_list"].get<object>();
        //cout << "\ttitle: " << title["title"].get<string>();
        //cout << ", primary: " << primary["primary"].get<double>() << endl;
    }

    //binding
    object& binding = it->get<object>();
    object& design = binding["binding"].get<object>();
    object& page = binding["binding"].get<object>();
    cout << "binding: " << endl;
    cout << "\tdesign: " << design["design"].get<double>();
    cout << ", binding: " << page["page"].get<double>() << endl;
    }

return 0;
}

error message

terminate called after throwing an instance of 'std::runtime_error'
what():  "type mismatch! call is<type>() before get<type>()" && is<object>()
Aborted (core dumped)

PicoJSONの公式ページを参考にしつつ、色々試してみたのですが、解決出来ませんでした。基本的な質問かもしれませんが、よろしくお願いします。