私は異なるAPIからデータを取得するコンソールアプリケーションを持っています。json stringで隠れたパラメータを送信するには?
受信したデータは、カスタムクラスにマップされます。このクラスは後でjson文字列にシリアル化されます。これが完了したら、私はurbanShipを使ってそれをモバイルアプリにプッシュします。
私の問題:
私は唯一のプッシュがアプリケーションに達するとメッセージプロパティを見にハチたいです。その他のプロパティはすべて含める必要がありますが、非表示にする必要があります。アプリがIdを持つ特定のオブジェクトに関する情報を取得するためには、他のプロパティが必要です。
私は試しました: 私は表示/非表示にしたいプロパティの[JsonIgnore]
と[DataMember]
注釈を使用してみました。しかし、これはうまくいかず、私はこれをどのように受け止めることができるのだろうと思っていますか?
マイコード:
私は現在シリアライズとプッシュしていたクラス:
[DataContract]
public class SubscriberPush
{
[DataMember]
public string TrainId { get; set; }
public string Message { get; set; }
public string Title { get; set; }
public string From { get; set; }
public string To { get; set; }
public bool LateTrain { get; set; }
public bool Canceled { get; set; }
}
データを設定:
pushSub.TrainId = trainAnnouncement.AdvertisedTrainIdent;
pushSub.Title = "the train is late";
pushSub.LateTrain = true;
pushSub.Message = "train is " + span.Minutes + " min late";
string json = Parser.ConvertToJson<SubscriberPush>(pushSub);
UrbanAirship.Push(ee.DeviceToken, json);
シリアライザ:
public static string ConvertToJson<T>(T obj)
{
var json = new JavaScriptSerializer().Serialize(obj);
return json.ToString();
}
JSON:
{"TrainId":"1036","Message":"train is 8 min late","Title":"the Train is late","From":null,"To":null,"LateTrain":true,"Canceled":false}
を隠されている_?彼らは送信されているか、送信されていません。 –