source

어레이 JSON 길이를 가져옵니다.그물

factcode 2023. 3. 10. 22:47
반응형

어레이 JSON 길이를 가져옵니다.그물

C#의 json.net을 사용하여 입수할 수 있는JSON 어레이의 길이를 입수하려면 어떻게 해야 합니다.SOAP 콜을 송신한 후 응답으로 JSON 스트링을 취득하여 json.net을 사용하여 해석합니다.

취득한 json의 예:

{"JSONObject": [
    {"Id":"ThisIsMyId","Value":"ThisIsMyValue"},
    {"Id":"ThisIsMyId2","Value":"ThisIsMyValue2"}
]}

해석해서 콘솔에 씁니다.

var test = JObject.Parse (json);
Console.WriteLine ("Id: {0} Value: {1}", (string)test["JSONObject"][0]["Id"], (string)test["JSONObject"][0]["Value"]);

이건 마법처럼 작동하는데, 단지 그 길이만 알 수가 없어.JSONObject단, for 루프에서 실행해야 합니다.어떻게 하면 그 길이를 알 수 있을지 모르겠다.test["JSONObject"]

근데 뭐랄까test["JSONObject"].Length너무 쉬울 것 같아:(..)

오브젝트를 에 송신할 수 있습니다.JArray그런 다음 를 사용합니다.Count다음과 같은 속성:

JArray items = (JArray)test["JSONObject"];
int length = items.Count;

그런 다음 다음과 같이 항목을 루프할 수 있습니다.

for (int i = 0; i < items.Count; i++)
{
    var item = (JObject)items[i];
    //do something with item
}

Onno(OP)에 따라 다음 항목도 사용할 수 있습니다.

int length = test["JSONObject"].Count();

하지만 개인적으로 이것이 효과가 있는지 확인하지는 못했습니다.

가장 쉽고 깔끔한 방법:

int length = test["JSONObject"].Count;

아래 행을 사용하여의 JSON 배열 길이를 얻을 수 있습니다.네트워크(JArray) .

 int length = ((JArray)test["jsonObject"]).Count;

이것만 시험해 보세요.

var test= ((Newtonsoft.Json.Linq.JArray)json).Count;

이것은 json 데이터가 json 파일에 있다고 가정했을 때 효과가 있었습니다.이 경우,길이는 작동하지만 사용할 수 있는 인텔리전스가 없습니다.

    public ActionResult Index()
    {
        string jsonFilePath = "C:\\folder\\jsonLength.json";
        var configFile = System.IO.File.ReadAllText(jsonFilePath);

        JavaScriptSerializer jss = new JavaScriptSerializer();
        var d = jss.Deserialize<dynamic>(configFile);

        var jsonObject = d["JSONObject"];
        int jsonObjectLength = jsonObject.Length;
        return View(jsonObjectLength);
    }

언급URL : https://stackoverflow.com/questions/19025174/get-length-of-array-json-net

반응형