【问题标题】:Xamarin Json parsingXamarin Json 解析
【发布时间】:2017-11-24 00:03:24
【问题描述】:

我有一个这样的json:

{"userTweetsList":[{"tweetId":1,"tweetData":"testing uploading from uwp","createdTime":1510822592529,"commentCount":0,"likeCount":1,"flagCount":1,"mediaUrl":"suburl","tweetUser":"geo.thomas","userLiked":true,"userFlagged":true},{"tweetId":2,"tweetData":"Testing tweet","createdTime":1510821224655,"commentCount":0,"likeCount":0,"flagCount":1,"mediaUrl":"suburl","tweetUser":"sreejith.sree","userLiked":false,"userFlagged":true}],"tweetUsersMapList":[{"geo.thomas":{"username":"geo.thomas","name":"geo thomas ","profileImage":null}},{"sreejith.sree":{"username":"sreejith.sree","name":"sreejith sreenivasan","profileImage":null}}],"urlFileserverDynamic":"MyBaseUrl"}

我的模型课:

 public class UserTweetResponse
 {
     public List<UserTweetsList> userTweetsList { get; set; }
 }
 public class UserTweetsList
 {
     public int tweetId { get; set; }
     public string tweetData { get; set; }
     public string createdTime { get; set; }
     public int commentCount { get; set; }
     public int likeCount { get; set; }
     public int flagCount { get; set; }
     public string mediaUrl { get; set; }
     public string tweetUser { get; set; }
     public bool userLiked { get; set; }
     public bool userFlagged { get; set; }
      public bool isMediaUrlNull { get { return string.IsNullOrEmpty(mediaUrl); } }
   }

在我的 cs 文件中,我将 listview 与 userTweetsList 链接起来,我的 listview 名称是 ListView1。

     ListView1.ItemsSource = userTweetResponse.userTweetsList;

我可以使用 {binding} 属性访问 userTweetsList 中的所有数据。

我的问题是我需要根据推文用户值访问并在 ui 中显示名称。假设我需要访问“tweetUser”:“geo.thomas”

{"geo.thomas":{"username":"geo.thomas","name":"geo thomas ","profileImage":null}} inside the tweetUsersMapList, same way for "tweetUser":"sreejith.sree"

我需要数据

{"sreejith.sree":{"username":"sreejith.sree","name":"sreejith sreenivasan","profileImage":null}}

为此,我像这样更改模型:

 public class UserTweetResponse
 {
    public List<UserTweetsList> userTweetsList { get; set; }
    public List<TweetUsersMapList> tweetUsersMapList { get; set; }
 }
 public class UserTweetsList
 {
    public int tweetId { get; set; }
    public string tweetData { get; set; }
    public string createdTime { get; set; }
    public int commentCount { get; set; }
    public int likeCount { get; set; }
    public int flagCount { get; set; }
    public string mediaUrl { get; set; }
    public string tweetUser { get; set; }
    public bool userLiked { get; set; }
    public bool userFlagged { get; set; }
    public bool isMediaUrlNull { get { return string.IsNullOrEmpty(mediaUrl); } }
  }

 public class TweetUsersMapList
 {
    public string username { get; set; }
    public string name { get; set; }
    public string profileImage { get; set; }
 }

但我不知道如何做剩下的部分。如何将列表视图与 tweetUsersMapList 链接?根据 tweetUser 名称,我如何选择名称并在 ui 中显示? 是否可以解析这种类型的复杂json? 任何人,请提出解决方案 提前谢谢...

【问题讨论】:

    标签: json xamarin.forms


    【解决方案1】:
    public class UserTweetsList
    {
        public int tweetId { get; set; }
        public string tweetData { get; set; }
        public object createdTime { get; set; }
        public int commentCount { get; set; }
        public int likeCount { get; set; }
        public int flagCount { get; set; }
        public string mediaUrl { get; set; }
        public string tweetUser { get; set; }
        public bool userLiked { get; set; }
        public bool userFlagged { get; set; }
    }
    
    public class GeoThomas
    {
        public string username { get; set; }
        public string name { get; set; }
        public object profileImage { get; set; }
    }
    
    public class SreejithSree
    {
        public string username { get; set; }
        public string name { get; set; }
        public object profileImage { get; set; }
    }
    
    public class TweetUsersMapList
    {
        public GeoThomas __invalid_name__geo.thomas { get; set; }
        public SreejithSree __invalid_name__sreejith.sree { get; set; }
    }
    
    public class RootObject
    {
        public List<UserTweetsList> userTweetsList { get; set; }
        public List<TweetUsersMapList> tweetUsersMapList { get; set; }
        public string urlFileserverDynamic { get; set; }
    }
    

    我已经使用Json2csharp 来生成这些类...

    【讨论】:

      猜你喜欢
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多