2017-03-29 2 views
0

Ich möchte als Schlüssel ein Paar von zwei Strings verwenden, zum BeispielWie erstelle ich einen Json :: Value :: ArrayIndex in C++?

{(key1, key2): value} 

I

versucht
std::string key1, key2, value; 
Json::Value p; 
p.append(key1); 
p.append(key2); 
dict[p] = value; 

Aber der Compiler beschwert es keine tragfähige operator[] ist.

Ich habe auch versucht

dict[Json::Value::ArrayIndex(p)] = value; 

Aber der Compiler beschwert sich der Umwandlung keine gangbare Weg ist.

Was mehr ist, die Anmeldung als Json::Value::ArrayIndex an erster Stelle wird mich davon abhalten, append insgesamt zu verwenden.

Also, was ist der richtige Weg, um ein Array als Schlüssel für mein Wörterbuch zu verwenden?

+0

Welche JSON-Bibliothek? –

+0

Entschuldigung, ich benutze [JsonCpp] (https://github.com/open-source-parsers/jsoncpp). –

+0

Ich bezweifle, dass Ihr Beispiel gültig json ist. Laut [json spec] (http://json.org) müssen Schlüssel string sein. –

Antwort

0

Nur Strings sind gültige Schlüssel in JSON.

Bitte beachten Sie die beiden Schlüssel zum Verketten und Index mit es:

dict[key1.asString()+","+key2.asString()] = value; 

Ich nehme an, Sie sind nicht irgendeine Art von seltsamen Schlüssel verwenden, die , in sich enthält, müssen Sie sie entkommen In diesem Fall.

+0

Ich merke, ich war unverzeihlich falsch. Der 'ArrayIndex' ist eher ein" Index "eines Arrays als ein Array, das" wie ein Index agiert ". Danke für das Löschen! –