web-dev-qa-db-ja.com

JsonConvertをC#アプリケーションにインポートする方法は?

C#ライブラリプロジェクトを作成しました。プロジェクトには、次の行が1つのクラスにあります。

JsonConvert.SerializeObject(objectList);

と言ってエラーが発生しています

jsonConvertという名前は現在のコンテキストに存在しません。

これを修正するために、参照にSystem.ServiceModel.Web.dllを追加しましたが、運がありませんでした。このエラーを解決するにはどうすればよいですか?

78
Jainendra

JsonConvertNewtonsoft.Jsonではなく、名前空間System.ServiceModel.Webからのものです

NuGetを使用してpackageをダウンロードします

「プロジェクト」->「NuGetパッケージの管理」->「「newtonsoft json」の検索」->「インストール」をクリックします。

150
Sam Leach

プロジェクトを右クリックし、Manage NuGet Packages..を選択します。その中でJson.NETを選択してインストールします

インストール後、

次の名前空間を使用します

using Newtonsoft.Json;

次に、以下を使用してデシリアライズします

JsonConvert.DeserializeObject
33
Krishna Deepak

NuGetを使用してインストールします。

Install-Package Newtonsoft.Json


this を回答として投稿します。

15
Zanon

ツール-> NuGetパッケージマネージャー->パッケージマネージャーコンソール

PM> Install-Package Newtonsoft.Json
3
Aminur Rahman

または、dotnet Coreを使用している場合、

.csprojファイルに追加します

  <ItemGroup>
    <PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
  </ItemGroup>

そして

dotnet restore
2
andrew lorien

.Net Core WebApiまたはWebSiteを開発している場合、newsonsoft.jsonをインストールしてjsonのシリアル化/再実現を実行する必要はありません。

コントローラーメソッドがJsonResultを返すことを確認し、この例のようにreturn Json(<objectoToSerialize>);を呼び出すだけです

namespace WebApi.Controllers
{
    [Produces("application/json")]
    [Route("api/Accounts")]
    public class AccountsController : Controller
    {
        // GET: api/Transaction
        [HttpGet]
        public JsonResult Get()
        {
            List<Account> lstAccounts;

            lstAccounts = AccountsFacade.GetAll();

            return Json(lstAccounts);
        }
    }
}

。Net Framework WebApiまたはWebSiteを開発している場合は、NuGetを使用してnewtonsoft jsonパッケージをダウンロードおよびインストールする必要があります

「プロジェクト」->「NuGetパッケージの管理」->「「newtonsoft json」の検索」->「インストール」をクリックします。

namespace WebApi.Controllers
{
    [Produces("application/json")]
    [Route("api/Accounts")]
    public class AccountsController : Controller
    {
        // GET: api/Transaction
        [HttpGet]
        public JsonResult Get()
        {
            List<Account> lstAccounts;

            lstAccounts = AccountsFacade.GetAll();

            //This line is different !! 
            return new JsonConvert.SerializeObject(lstAccounts);
        }
    }
}

詳細については、こちらをご覧ください- https://docs.Microsoft.com/en-us/aspnet/core/web-api/advanced/formatting?view=aspnetcore-2.1

Linux

Linuxおよび.NET Coreを使用している場合は、この質問を参照してください 、使用することをお勧めします

dotnet add package Newtonsoft.Json

そして追加します

using Newtonsoft.Json;

それを必要とするクラスに。

2
Evan Carroll

パッケージをインストールした後、フローコマンドを実行して、newtonsoft.json.dllをアセンブルパスに追加する必要があります。

アセンブリを使用する前に、グローバルアセンブリキャッシュ(GAC)に追加する必要があります。 Visual Studio 2008コマンドプロンプトを再度開きます(Vista/Windows7/etcの場合は、管理者として開きます)。そして、次のコマンドを実行します。 gacutil/i d:\ myMethodsForSSIS\myMethodsForSSIS\bin\Release\myMethodsForSSIS.dll

詳細については、このリンクをフローしてください http://Microsoft-ssis.blogspot.com/2011/05/referencing-custom-Assembly-inside.html

0
shiv roy