2017-09-21 9 views
-3

JSONオブジェクトは、このような文字列配列です。私はプロパティ「1」という用語は、プロパティ「2」がカウントされているResearchTermsの配列にNewtonsoftを使用してC#でこれをデシリアライズすることができますどのようにC#で異なるプロパティ名を使用してJSON文字列を非直列化する

[{"1":"ifn","2":7,"3":1.81818181818182},{"1":"macrophages","2":5,"3":1.2987012987013},{"1":"n =","2":5,"3":1.2987012987013},{"1":"p <","2":5,"3":1.2987012987013},{"1":"technique","2":5,"3":1.2987012987013},{"1":"cells","2":4,"3":1.03896103896104}] 

、プロパティ「3」:これは、「researchTerms」と呼ばれる変数でありますあなたがJson.Netを使用している場合は?:

public class ResearchTerm 
{ 
    public string Term { get; set; } 
    public int Count { get; set; } 
    public long Score { get; set; } 
} 
+1

あなたは 'など[JsonProperty( "1")]'使用してみましたか?私は数値を使ってそれを試していませんが、うまくいくかもしれません。これがJSON名を通常どおりに制御する方法です。 –

+1

あなたのタイトルは266000件のGoogleヒット - このサイトの最初の6件です – Plutonix

+0

[.NET NewtonSoft JSONのデリアライズマップを別のプロパティ名にマップ](https://stackoverflow.com/questions/15915503/net-newtonsoft-json) -deserialize-map-to-different-property-name) – eocron

答えて

2

スコアあなたは属性を使用することができますJsonPropertyある

public class ResearchTerm 
{ 
    [JsonProperty("1")] 
    public string Term { get; set; } 
    [JsonProperty("2")] 
    public int Count { get; set; } 
    [JsonProperty("3")] 
    public decimal Score { get; set; } 
} 
+0

これは機能します!私は検索しようとした前に、この解決策を見つけることができませんでした。ありがとう。 – Andy

+0

これを使用すると、クライアントに配信するために再度シリアライズされたときに、Jsonプロパティを1、2、3に変換するように見えます。値を一方向に変換する方法はありますか?データベースの文字列を読み込むときに、C#コードでTermに "1"を返し、再度シリアル化したときにそのままにしますか?私はこれを使用しています:Newtonsoft.Json.JsonConvert.DeserializeObject (personTask.Result.ResearchKeywords); – Andy

+0

@Andyはいそうです。しかし、私が過去の経験から知っていることは、コメントの中の* "新しい質問" *に答えると別の質問が出るということです。申し訳ありませんが、私はこのループに入るにはあまりにも怠惰です – Eser

関連する問題