.Net 4.0でJavaScriptSerializerが見つかりません


297

Visual Studio 2010内でJavaScriptSerializerオブジェクトもSystem.Web.Script.Serialization名前空間も見つからないようです。何かをJSONにシリアル化して、何を使用する必要がありますか?

そして、はい、私は既にSystem.Web.Extensions(System.Web.Extensions.dllに)プロジェクトに含めました。ショックを受けたのはこのためですか。

  • 3.5で廃止System.Web.Extensionsとしてマークされたのは知っています。

5
私も同じ問題を抱えており、答えはまったく役に立たないと言っていかなければなりません。「.NET 4クライアントプロファイル」ではなく、「。NET Framework 4」をターゲットにしています。私がしているアセンブリSystem.Web.Extensionsを参照します。しかし、System.Web.Script.Serialization名前空間を使用しようとすると、VS 2010で「タイプまたは名前空間のスクリプトが名前空間System.Webに存在しません」と表示されます。誰かがこれの本当の解決策を見つけましたか?私は困惑しています!
twakjaco

関連記事はこちら
RBT 2017年

回答:


523

.net 4バージョンが含まれているかどうかを確認してください-3.5バージョンSystem.Web.Extensionsもありますが、1つは機能するとは思われません。

これらの手順は私にとってはうまくいきます:

  1. 新しいコンソールアプリケーションを作成する
  2. ターゲットをクライアントプロファイルではなく.net 4に変更します
  3. System.Web.Extensions(4.0)への参照を追加する
  4. JavaScriptSerializer今すぐProgram.csにアクセスしてください:-)

vb.netで "new"と()を忘れないでください:Dim JsonConvert As New JavaScriptSerializer()
zokaee hamid

125
  1. 右クリックReferencesしてAdd Reference、次にAssemblies->Framework選択しますSystem.Web.Extensions
  2. これで、クラスファイルに以下を追加できるようになります。
    using System.Web.Script.Serialization;

私もthahtはあなたに感謝のような何かを忘れてしまった完璧
カリルLiraqui

すごい!詳細な説明
charulatha krishnamoorthy

41

グーグルの最初の検索結果から:

http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx

JavaScriptSerializerクラス

AJAX対応アプリケーションにシリアル化および逆シリアル化機能を提供します。

継承階層

System.Object

System.Web.Script.Serialization.JavaScriptSerializer

名前空間:System.Web.Script.Serialization

アセンブリ:System.Web.Extensions(System.Web.Extensions.dll内)

したがって、System.Web.Extensions.dll参照として含めます。


3
2年後、まったく関係のないプロジェクト:正しく大文字にすると>。>(JavascriptSerializerではありません)。
neminem 2015年

25

私はVisual Studio 2015を使用していて、ついにこの投稿に出くわしました。

はい、使用するために

JavaScriptSerializer json = new JavaScriptSerializer();

参照を右クリックして、アセンブリ->フレームワークの下で選択する必要があります

System.Web.Extensions

次に、参照を追加します

using System.Web.Script.Serialization;

15

これは標的に、あなたのアプリケーションで利用できるJavaScriptSerializerを取得する方法である.NET 4.0(フル)

using System.Web.Script.Serialization;

これで新しいJavaScriptSerializerオブジェクトを作成できるはずです!


スクリプトは存在しません
KansaiRobot

12
using System.Web.Script.Serialization; 

アセンブリにあります:System.Web.Extensions(System.Web.Extensions.dll)


10

.NET 4フレームワークまたは.NET 4クライアントプロファイルをターゲットにしていますか?

後者をターゲットにしている場合、そのクラスは見つかりません。拡張機能dllなどの参照が欠落している可能性もあります。


.NET Framework 4.そして、私はすでに「System.Web.Extensions」をプロジェクトに含めています
Prisoner ZERO

これは、以前のバージョンの.netからアップグレードしたプロジェクトですか?
Christopher Currens、2011

アップグレードしたプロジェクトでこの問題が発生しています。ただし、元の.netバージョン(3.5)を使用しても解決されないようです...
user1003221 '10

9

上記の回答をフォローしているように見えても問題がある場合(例:投稿者の質問の最初のコメントを参照):

あなたはおそらく多くのプロジェクトでソリューションを扱っています。作業しているように見えるプロジェクトが他のプロジェクトを参照していますが、実際には他のプロジェクトの1つからファイルを変更しています。例えば:

  • プロジェクトAの参照 System.Web.Extensions
  • プロジェクトAはプロジェクトBを参照

ただし、使用するように変更しているファイルがSystem.Web.Script.SerializationプロジェクトB にある場合は、プロジェクトBにも参照を追加する必要がありSystem.Web.Extensionます。


8

への参照を含めましたSystem.Web.Extensionsか?最初のリンクをクリックすると、どのアセンブリにあるかが表示されます。


その場合は、@ Christopherの回答を確認してください。
Davy8

5

プロジェクトへの参照を追加する必要があります。

アセンブリには、System.Web.Extensionsがあります。

それが終わったら次を入れてください:

    using System.Web;
    using System.Web.Script;
    using System.Web.Script.Serialization;

それでうまくいきました。


3

私はVisual Studio 2013を使用していますが、プロジェクトのプロパティを使用して3.5フレームワークに切り替え、4.5に戻すまで、同じ問題が発生しました。これは何らかの理由で.dllを適切に登録し、System.Web.Extensionsを使用できました。

ここに画像の説明を入力してください

ここに画像の説明を入力してください


3

Newtonsoft.Jsonという別のオプションを使用できます。NuGetパッケージマネージャーからインストールできます。

ツール>> Nugetパッケージマネージャー>>コマンドを発行してパッケージマネージャーコンソール

Install-Package Newtonsoft.Json

または

ツール>> Nugetパッケージマネージャー>>ソリューションのNuGetパッケージの管理でGUIを使用して...

ここに画像の説明を入力してください


これはマイクロソフトの文書化された推奨事項であることに注意してください。.Net Coreでは、MicrosoftはJavaScriptSerializer(他のSystem.Web.Extensions)も提供しなくなりました。
ブライアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.