Skip to content

Commit 0978c07

Browse files
committed
Add JSONValue Processing Java interface methods (getInt/getString/setString etc.)
1 parent 5692d82 commit 0978c07

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

src/Processing.h

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2075,9 +2075,30 @@ struct JSONValue {
20752075
JSONValue& operator[](int i) { return (*arr)[i]; }
20762076
int size() const { if(isArray())return (int)arr->size(); if(isObject())return (int)obj->size(); return 0; }
20772077
bool hasKey(const ::std::string& k) const { return isObject() && obj->count(k); }
2078+
// Processing Java JSONObject interface
2079+
bool getBoolean(const ::std::string& k) const { return isObject()&&obj->count(k)?(*obj).at(k).getBool():false; }
2080+
int getInt(const ::std::string& k) const { return isObject()&&obj->count(k)?(int)(*obj).at(k).n:0; }
2081+
float getFloat(const ::std::string& k) const { return isObject()&&obj->count(k)?(float)(*obj).at(k).n:0; }
2082+
::std::string getString(const ::std::string& k) const { return isObject()&&obj->count(k)?(*obj).at(k).s:""; }
2083+
JSONObject& getJSONObject(const ::std::string& k) { return *(*obj)[k].obj; }
2084+
JSONArray& getJSONArray(const ::std::string& k) { return *(*obj)[k].arr; }
2085+
void setBoolean(const ::std::string& k, bool v) { (*obj)[k]=JSONValue(v); }
2086+
void setInt(const ::std::string& k, int v) { (*obj)[k]=JSONValue(v); }
2087+
void setFloat(const ::std::string& k, float v) { (*obj)[k]=JSONValue((double)v); }
2088+
void setString(const ::std::string& k, const ::std::string& v){ (*obj)[k]=JSONValue(v); }
2089+
// JSONArray interface
2090+
bool getBoolean(int i) const { return isArray()&&i<(int)arr->size()?(*arr)[i].getBool():false; }
2091+
int getInt(int i) const { return isArray()&&i<(int)arr->size()?(int)(*arr)[i].n:0; }
2092+
float getFloat(int i) const { return isArray()&&i<(int)arr->size()?(float)(*arr)[i].n:0; }
2093+
::std::string getString(int i) const { return isArray()&&i<(int)arr->size()?(*arr)[i].s:""; }
2094+
void append(bool v) { if(isArray()) arr->push_back(JSONValue(v)); }
2095+
void append(int v) { if(isArray()) arr->push_back(JSONValue(v)); }
2096+
void append(float v) { if(isArray()) arr->push_back(JSONValue((double)v)); }
2097+
void append(const ::std::string& v){ if(isArray()) arr->push_back(JSONValue(v)); }
20782098
};
20792099

20802100

2101+
20812102
// =============================================================================
20822103
// XML
20832104
// =============================================================================

0 commit comments

Comments
 (0)