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
または、dotnet Coreを使用している場合は、
.csprojファイルに追加
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
</ItemGroup>
そして
dotnet restore
Linuxと.NET Coreを使用している場合は、この質問を参照してください。
dotnet add package Newtonsoft.Json
そして追加
using Newtonsoft.Json;
それを必要とするクラスに。
ツール-> NuGetパッケージマネージャー->パッケージマネージャーコンソール
PM> Install-Package Newtonsoft.Json
.Net Core WebApiまたはWebSiteを開発している場合は、newtownsoft.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
パッケージをインストールした後、flowingコマンドを実行して、newtonsoft.json.dllをアセンブルパスに追加する必要があります。
アセンブリを使用する前に、それをグローバルアセンブリキャッシュ(GAC)に追加する必要があります。Visual Studio 2008コマンドプロンプトを再度開きます(Vista / Windows7などの場合は、管理者として開きます)。そして、次のコマンドを実行します。gacutil /id:\myMethodsForSSIS\myMethodsForSSIS\bin\Release\myMethodsForSSIS.dll
詳細については、このリンクをフロー http://microsoft-ssis.blogspot.com/2011/05/referencing-custom-assembly-inside.html