【问题标题】:get the last element of a json file获取json文件的最后一个元素
【发布时间】:2020-06-29 12:04:21
【问题描述】:

使用工作代码编辑 30/06/2020。谢谢大家!

您好,我想在我的解决方案中获取 json 文件的最后一个元素。 实际上我的网络服务发送了所有的 json 文件:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data;
using Newtonsoft.Json;
using System.Text;
using System.IO;
using Newtonsoft.Json.Linq;
    

namespace getLastVersionNumber
{
    /// <summary>
    /// Description résumée de WebService1
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // Pour autoriser l'appel de ce service Web depuis un script à l'aide d'ASP.NET AJAX, supprimez les marques de commentaire de la ligne suivante. 
    // [System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {
       

        [WebMethod]

    public string IDVersion()
    {

        //JSON path
        String json = File.ReadAllText(@"C:\Users\sejjilali\source\repos\WebserviceProdware\getLastVersionNumber\idVersions.json");


        //Parsing, get last one and convert it to a string
        var lastVersion = JArray.Parse(json).Last().ToString();

        return lastVersion;
        }
    }

}

这是我的文件示例:

[ { “身份证”:1, “版本”:0.1 }, { “身份证”:2, “版本”:0.5 }, { “身份证”:3, “版本”:0.8 } ]

我只想得到最后一个 { "id": 3, "version": 0.8 }

感谢帮助

【问题讨论】:

  • JArray.Parse(st).Last();
  • 嗨,埃文,我试过了,但它不起作用。 JArray test = JArray.Parse(json).Last(); 最后停留在红色

标签: c# .net json visual-studio web-services


【解决方案1】:

您可以尝试以下代码获取json文件的最后一个元素。

        string path = "D:\\1.json";
        string text = File.ReadAllText(path);
        JToken test = JArray.Parse(text).Last();
        Console.WriteLine(test);

结果:

【讨论】:

  • 嗨,Jack 刚刚使用解决方案编辑了代码。你的帮助我,谢谢!
【解决方案2】:

先这样定义类

public class Data{
    public int id{get;set;}
    public double version{get;set;}
}

之后你可以像这样得到最后一个值

List<Data> myDatas=JsonConvert.DeserializeObject<List<Account>>(stringfromwebservice);
Data myData=myDatas.Last();

【讨论】:

  • 感谢您的帮助,萨杜拉,我正在阅读您的答案,但我该如何使用它?你有我可以阅读的主题吗?
【解决方案3】:

用法:

var stringfromwebservice="from web server data";
List<webservice>  webserviceList=JsonConvert.DeserializeObject<List<webservice>>(stringfromwebservice);

webservice DataModel = webserviceList[webserviceList.Count];

数据模型

public class webservice 
{
    int id { get; set; }
    double version { get; set; }
}

【讨论】:

  • 请同时提供一些上下文信息。为什么你认为这段代码应该对 OP 有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-29
  • 1970-01-01
  • 1970-01-01
  • 2018-08-25
  • 2012-04-02
  • 2010-11-30
  • 1970-01-01
相关资源
最近更新 更多