void fromJsonArray(const Json::Value& parent, std::vector<T>& ref, int size) { if (parent.size() != size) { PRINT_AND_THROW(boost::format("expected list of size size %i. got: %s\n")%size%parent); } else { fromJsonArray(parent, ref); } }
v8::Handle<v8::Value> QV8JsonWrapper::fromJsonValue(const QJsonValue &value) { if (value.isString()) return QJSConverter::toString(value.toString()); else if (value.isDouble()) return v8::Number::New(value.toDouble()); else if (value.isBool()) return value.toBool() ? v8::True() : v8::False(); else if (value.isArray()) return fromJsonArray(value.toArray()); else if (value.isObject()) return fromJsonObject(value.toObject()); else if (value.isNull()) return v8::Null(); else return v8::Undefined(); }
inline void fromJson(const Json::Value& v, std::vector<T>& ref) { fromJsonArray(v, ref); }
void fromJson(const Json::Value& v, Vector4d& x) { vector<double> vx; fromJsonArray(v, vx, 4); x = Vector4d(vx[0], vx[1], vx[2], vx[3]); }