Chilkat - Генерация одного массива Json из двух массивов - PullRequest
0 голосов
/ 10 сентября 2018

Допустим, у вас есть следующий JsonObject Chilkat с именем jsonA:

"object": "list",
"data": [
 {0},
 {1},
 {2},
 {3},
 {4},
 {5}
],
"has_more": true
}

Допустим, у вас есть идентичный следующий JsonObject с именем jsonB:

"object": "list",
"data": [
  {6},
  {7},
  {8}
  ],
  "has_more": false
  }

Используя пакет, что будетлучший подход для создания единого массива «данных»:

"data": [
{0},
{1},
{2},
{3},
{4},
{5},
{6},
{7},
{8}
],

Я копался в справочной документации Json и не могу найти способ, который бы это сделал?Каждый массив может содержать до 100 элементов, поэтому я бы предпочел не циклически просматривать каждый элемент, если это возможно.

1 Ответ

0 голосов
/ 11 сентября 2018

Вот что я бы сделал ..

Во-первых ... синтаксис "{0}" не имеет смысла для меня.Если элемент массива начинается с «{», то он должен содержать пару имя / значение, например: «имя»: значение

            string strA = @"
{
""object"": ""list"",
""data"": [ 0,1,2,3,4,5 ],
""has_more"": true
}";
            string strB = @"
{
""object"": ""list"",
""data"": [ 6,7,8 ],
""has_more"": false
}";

        Chilkat.JsonObject jsonA = new Chilkat.JsonObject();
        jsonA.Load(strA);

        Chilkat.JsonObject jsonB = new Chilkat.JsonObject();
        jsonB.Load(strB);

        Chilkat.JsonArray a = jsonA.ArrayOf("data");

        int numDataItems = jsonB.SizeOfArray("data");
        int i;
        for (i=0; i<numDataItems; i++)
            {
            jsonB.I = i;
            a.AddIntAt(-1,jsonB.IntOf("data[i]"));
            }

        jsonA.EmitCompact = false;
        textBox1.Text = jsonA.Emit();
...