2014-01-15 4 views
1

Есть ли какой-нибудь собственный способ обработки JSON в .NET 2.0? JavaScriptSerializer доступен только с .NET 3.5. Я ищу некоторые встроенные классы .NET 2.0, которые я могу использовать для обработки JSON для моего настольного приложения.Обращайтесь с JSON в .NET 2.0, не используя сторонних разработчиков

+2

Что вы подразумеваете под "native"? –

+1

@AZ, я предполагаю, что «родной», он спрашивает, содержит ли .NET 2.0 библиотеки для обработки JSON. Поскольку ни .NET ['DataContractJsonSerializer'] (http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.datacontractjsonserializer (v = vs.110) .aspx), ни [' JavaScriptSerializer '] (http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer (v = vs.110) .aspx) поддерживаются, он, скорее всего, партийного решения. – valverij

+0

@ohavryl, если вы не хотите писать инструмент для нуля, в .NET 2.0 нет «родной» поддержки. См. Ответы ниже для простых и широко используемых альтернатив. – valverij

ответ

0

EDIT в угоду более буквально мыслящих типов:

Ответ на вопрос: НЕТ.

Предлагаемое альтернативное решение: Вы можете использовать JSON.NET. Я думаю, что есть версия библиотеки, которая работает на .NET 2.0.

+0

-1: это отличный инструмент, но ОП попросил «родной», что означает отсутствие сторонних инструментов. –

+0

@John - geez, похоже, что сообщество SO действительно полно педантичных элитарных братов. Вы проголосовали 2 отличных ответа (valverij на самом деле вложил в него какую-то работу, в отличие от меня), потому что вы видели слово в вопросе? Нет четкого утверждения о том, что означает «родной» для ОП. Это может быть собственный API-интерфейс win32 для всех, кого я люблю. Мы видели этот вопрос и дали «лучший» ответ в контексте. В противном случае, если бы мы восприняли это буквально, так как вы ответили просто «Нет» - и это не так полезно, не так ли? –

+0

OP говорит: «Я ищу некоторые встроенные классы .NET 2.0», что более одного слова, и это довольно ясно. –

5

Вкратце: Нет. Если вы не написали парсер JSON с нуля, в .NET 2.0 нет встроенной поддержки для сериализации/десериализации JSON.

В качестве альтернативы, вы можете использовать Json.NET (http://json.codeplex.com/ или http://james.newtonking.com/json)

Согласно первой странице для Json.NET на это CodePlex страница:

  • Гибкая JSON сериализатор для преобразования между объектами .NET и JSON
  • LINQ to JSON для ручного чтения и записи JSON
  • Высокая производительность, быстрее, чем встроенный J SON сериализаторов
  • Запись с отступом, легко читать JSON
  • Преобразовать JSON и из XML
  • Поддержка .NET 2, .NET 3.5, .NET 4, Silverlight, Windows Phone и Windows 8.

На странице также есть инструкции по применению ее в вашей заявке через NuGet.

Если ваша версия Visual Studio не поддерживается NuGet, то вы всегда можете просто download the binaries и вручную добавить ссылки на соответствующие DLL из папки bin zip (bin \ Net20) в ваш проект.

Инструкции для ручного добавления ссылок в Visual Studio можно найти здесь: How to: Add or Remove References By Using the Add Reference Dialog Box

нажав на кнопку «Другие версии» под названием покажет вам ссылки на руководство по обслуживанию старых версий Visual Studio.

После установки вы можете найти множество примеров, отличных от LINQ, в документации JSON.NET. Хорошее место для начала: Serializing and Deserializing JSON

+0

-1: Это отличный инструмент, но ОП попросил «родной», что означает отсутствие сторонних инструментов. –

+0

+1 от меня за хороший отработанный ответ и, по крайней мере, компенсировать -1 от Джона. @ Джон, вы думаете, что вы можете сделать лучше, разместите свой собственный «правильный» ответ. –

+0

@AZ: очевидно, правильный ответ: «нет, нет собственного способа это сделать» –

Смежные вопросы