C#ライブラリプロジェクトを作成しました。プロジェクトには、次の行が1つのクラスにあります。
JsonConvert.SerializeObject(objectList);
と言ってエラーが発生しています
jsonConvertという名前は現在のコンテキストに存在しません。
これを修正するために、参照にSystem.ServiceModel.Web.dll
を追加しましたが、運がありませんでした。このエラーを解決するにはどうすればよいですか?
JsonConvert
はNewtonsoft.Json
ではなく、名前空間System.ServiceModel.Web
からのものです
NuGet
を使用してpackage
をダウンロードします
「プロジェクト」->「NuGetパッケージの管理」->「「newtonsoft json」の検索」->「インストール」をクリックします。
プロジェクトを右クリックし、Manage NuGet Packages..
を選択します。その中でJson.NET
を選択してインストールします
インストール後、
次の名前空間を使用します
using Newtonsoft.Json;
次に、以下を使用してデシリアライズします
JsonConvert.DeserializeObject
ツール-> NuGetパッケージマネージャー->パッケージマネージャーコンソール
PM> Install-Package Newtonsoft.Json
または、dotnet Coreを使用している場合、
.csprojファイルに追加します
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
</ItemGroup>
そして
dotnet restore
.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および.NET Coreを使用している場合は、この質問を参照してください 、使用することをお勧めします
dotnet add package Newtonsoft.Json
そして追加します
using Newtonsoft.Json;
それを必要とするクラスに。
パッケージをインストールした後、フローコマンドを実行して、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