no struct init

The C struct initializer is not standard C++.
GCC and Clang handle this (at least in some versions) but some
compilers might not.
diff --git a/src/lib_json/json_value.cpp b/src/lib_json/json_value.cpp
index b8d224b..979a1bc 100644
--- a/src/lib_json/json_value.cpp
+++ b/src/lib_json/json_value.cpp
@@ -195,19 +195,23 @@
 Value::CZString::CZString(ArrayIndex index) : cstr_(0), index_(index) {}
 
 Value::CZString::CZString(char const* str, unsigned length, DuplicationPolicy allocate)
-    : cstr_(allocate == duplicate ? duplicateStringValue(str) : str),
-      storage_({allocate, length})
-{}
+    : cstr_(allocate == duplicate ? duplicateStringValue(str) : str)
+{
+  storage_.policy_ = allocate;
+  storage_.length_ = length;
+}
 
 Value::CZString::CZString(const CZString& other)
     : cstr_(other.storage_.policy_ != noDuplication && other.cstr_ != 0
                 ? duplicateStringValue(other.cstr_)
-                : other.cstr_),
-      storage_({(other.cstr_
+                : other.cstr_)
+{
+  storage_.policy_ = (other.cstr_
                  ? (other.storage_.policy_ == noDuplication
                      ? noDuplication : duplicate)
-                 : other.storage_.policy_), other.storage_.length_})
-{}
+                 : other.storage_.policy_);
+  storage_.length_ = other.storage_.length_;
+}
 
 Value::CZString::~CZString() {
   if (cstr_ && storage_.policy_ == duplicate)