Index: base/json/json_writer.h |
diff --git a/base/json/json_writer.h b/base/json/json_writer.h |
index 88c7d58101bf5ca69b5c53a4c233564d828d97ac..665b86a455f65748a46c6f0de784cc2444b6ae73 100644 |
--- a/base/json/json_writer.h |
+++ b/base/json/json_writer.h |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
@@ -25,7 +25,20 @@ class BASE_EXPORT JSONWriter { |
// For values of binary type, the value (and key if within a dictionary) |
// will be omitted from the output. |
- OPTIONS_OMIT_BINARY_VALUES = 1 << 1 |
+ OPTIONS_OMIT_BINARY_VALUES = 1 << 1, |
+ |
+ // An external consumer of your JSON may expect a 64-bit integer value. |
+ // However, the |Value| classes only support 32-bit ints. One feasible |
+ // way to mitigate this is to use a double to represent the integer. |
+ // However, this class writes all doubles in such a way that causes many |
+ // JSON readers to parse the number as a double instead of a 64-bit int. |
+ // This may break the external consumer of the JSON if it expects a |
+ // 64-bit int. |
tony
2012/03/06 21:50:13
I would remove the text from line 30-36. It's suf
kkania
2012/03/06 22:41:57
Done.
|
+ // This option instructs the writer to write doubles that have no fractional |
+ // part as a normal integer (i.e., without using exponential notation |
+ // or appending a '.0') as long as the value is within the range of a |
+ // 64-bit int. |
+ OPTIONS_OMIT_DOUBLE_TYPE_PRESERVATION = 1 << 2 |
}; |
// Given a root node, generates a JSON string and puts it into |json|. |
@@ -53,7 +66,8 @@ class BASE_EXPORT JSONWriter { |
// Called recursively to build the JSON string. Whe completed, value is |
// json_string_ will contain the JSON. |
void BuildJSONString(const Value* const node, int depth, bool escape, |
- bool ignore_binary_values); |
+ bool ignore_binary_values, |
+ bool omit_double_type_preservation); |
// Appends a quoted, escaped, version of (UTF-8) str to json_string_. |
void AppendQuotedString(const std::string& str); |