質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
.NET Core

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Q&A

解決済

1回答

408閲覧

NewtonSoftJsonのデシリアライザーでpublic以外のクラスを使用したい

america

総合スコア35

.NET Core

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

1グッド

0クリップ

投稿2023/07/21 07:17

編集2023/07/21 07:55

実現したいこと

NewtonSoftのデシリアライザーを使用し、jsonファイルの値を、クラスに入れたいのですが、そのクラスのアクセシビリティがprivateの時でも値が入るようにしたいです
もしくはそもそもデシリアライザー自体がpublicだから同じアクセス修飾子でないとできなのかが知りたいです

発生している問題・エラーメッセージ

起動はできるのですが、jsonファイルにある値がクラスに入りません

該当のソースコード

public class test
{

private class A
{
private int id{get;set;}
}
private class Root
{
private A A{get;set;} = new A();
}

Root _root = new Root();

private void DoWork()
{
using (StreamReader sr = new StreamReader("jsonファイルのパス"))
{
_root = JsonConvert.DeserializeObject<Root>(sr.ReadToEnd())!;
}
}

試したこと

protectedやinternal などのほかのアクセシビリティでも試したのですが
値が入りませんでした

補足情報(FW/ツールのバージョンなど)

windowsforms
.Net5
C#
NewtonSoftJson Version 13.0.3

Zuishin👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

america

2023/07/21 07:54

先ほど下のように[JsonInclude]属性を試したのですが値の取得ができませんでした private class Root { [JsonInclude] private int Id{get;set;} }
Zuishin

2023/07/21 07:56 編集

なぜ違うものを? > Newtonsoft.Json では、JsonProperty 属性を通じて、プライベートおよび内部プロパティのセッターとゲッターを使用できます。
america

2023/07/21 08:06

ありがとうございます、その下の方を参照してました 先ほど試したところ値の取得ができました
Zuishin

2023/07/21 08:08

質問と回答のみの情報で他の人の役に立つように完結した回答を自分でつけてそれをベストアンサーに選んでください。
guest

回答1

0

自己解決

教えていただいた通り、JsonProperty属性を付与し他ところ、値の取得に成功しました

投稿2023/07/21 08:07

america

総合スコア35

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問