Chilkat - 从两个数组生成单个 Json 数组
Chilkat - Generating single Json array from two arrays
假设您有以下 Chilkat Json名为 jsonA 的对象:
"object": "list",
"data": [
{0},
{1},
{2},
{3},
{4},
{5}
],
"has_more": true
}
假设您有以下相同的 Json名为 jsonB 的对象:
"object": "list",
"data": [
{6},
{7},
{8}
],
"has_more": false
}
利用捆绑包,生成单个 "data" 数组的最佳方法是什么:
"data": [
{0},
{1},
{2},
{3},
{4},
{5},
{6},
{7},
{8}
],
我已经翻阅了 Json 参考文档,但似乎找不到执行此操作的方法?每个数组最多可以包含 100 个项目,因此如果可能的话,我宁愿不必循环遍历每个项目。
这是我会做的..
首先..语法“{0}”对我来说没有意义。如果数组项以“{”开头,那么它应该包含一个 name/value 对,例如:"name" : value
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();
假设您有以下 Chilkat Json名为 jsonA 的对象:
"object": "list",
"data": [
{0},
{1},
{2},
{3},
{4},
{5}
],
"has_more": true
}
假设您有以下相同的 Json名为 jsonB 的对象:
"object": "list",
"data": [
{6},
{7},
{8}
],
"has_more": false
}
利用捆绑包,生成单个 "data" 数组的最佳方法是什么:
"data": [
{0},
{1},
{2},
{3},
{4},
{5},
{6},
{7},
{8}
],
我已经翻阅了 Json 参考文档,但似乎找不到执行此操作的方法?每个数组最多可以包含 100 个项目,因此如果可能的话,我宁愿不必循环遍历每个项目。
这是我会做的..
首先..语法“{0}”对我来说没有意义。如果数组项以“{”开头,那么它应该包含一个 name/value 对,例如:"name" : value
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();