【发布时间】:2019-03-02 18:47:50
【问题描述】:
我为我的游戏编写了一个 api 来获得成就等。我通过 www 请求将数据从网络服务器加载到统一 c# 中。我需要一个来自 php 的数组,其中包含成就和更多数据。问题是,结果是这样的
[
{"ID":"1",
"gameID":"1",
"name":"achv1",
"neededvalue":"50",
"player_achievements":{
"ID":"8",
"achievementID":"1",
"playerID":"9",
"value":"",
"completed":""
}
},
{"ID":"2",
"gameID": "1",
"name":"achv2",
"neededvalue":"100",
"player_achievements":{
"ID":"9",
"achievementID":"2",
"playerID":"9",
"value":"","completed":""
}
}
]
player_achievements 是 head 数组的子数组,我需要 player_achievements [] 周围的 square_brackets,因为 untity c# 无法将其转换为对象。我搜索了几个小时以找到解决方案,但没有人解释如何。我找到了这个link 但这不是我的选择。我想要字符串键而不是数字。给它一种将字符串键用作数组而不是对象的方法吗? 我需要它:
[
{ "ID":"1",
"gameID":"1",
"name":"achv1",
"neededvalue":"50",
"player_achievements":[
{ "ID":"8",
"achievementID":"1",
"playerID":"9",
"value":"",
"completed":""
}
]
},
{
"ID":"2",
"gameID":"1",
"name":"achv2",
"neededvalue":"100",
"player_achievements":[
{ "ID":"9",
"achievementID":"2",
"playerID":"9",
"value":"",
"completed":""
}
]
}
]
【问题讨论】:
-
那么让
player_achievements成为一个对象数组? -
json_decode 带有数组标志?
-
@Jeff 他们失去了一层嵌套,这不是序列化格式问题
-
问题在于您传递给
json_encode()的数组。如果您显示创建它的代码,我们可以帮助您修复其结构。 -
可能想要 json_decode() 然后 json_encode() 你的数据。这帮助我解决了很多 JSON 问题。