获取 json 文件的最后一个元素

get the last element of a json file

使用工作代码编辑 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 }

感谢帮助

首先这样定义class

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();

用法:

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; }
}

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

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

结果: