JSON - это стандартный формат представления и обмена данными. Он не определяет термины Упакованные или Bare. Я не знаком с C# и его библиотеками для кодирования данных как JSON, однако я могу сделать предположение на основе предоставленных вами образцов.
Если у вас есть контроль над приложением C#, используйте его для использования Bare. Я не вижу никакого преимущества, в общем, для Обернутый стиль. Возможно, он разработан специально для некоторых других клиентских библиотек C#.
Единственная разница, которую я вижу в выпуске, - это структура данных. Нет никакого способа быть абсолютно уверенным, но из этих двух образцов вы можете просто посмотреть на десериализованный объект и проверить, есть ли у него атрибут Echo
. Если это так, используйте значение этого атрибута, и если он не использует объект as-is.
Поскольку я не работал на C++ более десяти лет, и я не знаю, какую библиотеку JSON вы используете, я приведу пример в JavaScript (хотя с использованием стиля, который может быть несколько ближе к C++). Вот как эти два объекта могут быть обработаны:
var data = JSON.parse(...); // the '...' represents where ever you get the text
if (data["Echo"] !== undefined)
{ data = data["Echo"]; }
console.log("The first name is:", data["firstname"]);
Вот псевдо-код примера, который почти действительный Java, которые могут быть более легко распознать и переведенный на C++:
Map<String, Object> data = JSON.parse(...); // the '...' represents where ever you get the text
if (data.containsKey("Echo"))
{ data = (Map)data.get("Echo"); }
System.out.println("The first name is: " + data.get("firstname"));
Что вы имеете в виду с помощью 'wrapped' и' not wrapped' json? Можете ли вы привести пример того и другого? – Jacobian
Простой, обернутый json будет чувствовать себя немного резиновым. –
@Jacobian Я редактировал вопрос. Спасибо за ваше замечание. –