@@ -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