- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我从服务器传来的json文件是这样的:
{"status":"success","data":{"projectId":"572ca0cde163d","sensorId":"572ca2deea163b","createTime":1462514044,"updateTimeStamp":1462514044,"recognPicUrl":"http://192.168.1.115:8500/dddd.jpg","drawingModule":{"subjectTemplateId":"16","drawingUnits":[{"drawingUnitId":"572ca0c4f14c023cdeea163c",
"drawingResources":
[{"resourceUrl":"http://192.168.1.115:8300/dds.png","serviceProps":{},"resourceType":"IMG"}],"drawingComponentId":"1"}],
"templateConfig":{"isVertical":false}},"targetId":"ba0a0d83c657e49eb312"}}
如何读取值“isVertical”?
最佳答案
首先,您的Json
无效。 "serviceProps"
和 {},
之间应该有一个“:
”。
这是您的 Json 数据的固定版本。
{"status":"success","data":{"projectId":"572ca0cde163d","sensorId":"572ca2deea163b","createTime":1462514044,"updateTimeStamp":1462514044,"recognPicUrl":"http://192.168.1.115:8500/dddd.jpg","drawingModule":{"subjectTemplateId":"16","drawingUnits":[{"drawingUnitId":"572ca0c4f14c023cdeea163c",
"drawingResources":
[{"resourceUrl":"http://192.168.1.115:8300/dds.png","serviceProps":{},"resourceType":"IMG"}],"drawingComponentId":"1"}],
"templateConfig":{"isVertical":false}},"targetId":"ba0a0d83c657e49eb312"}}
要回答您的问题,您可以通过创建一个表示所有键的类然后从该类中提取 isVertical
来轻松提取 isVertical
。
Unity 在 5.3 版本中添加了对 Json
的原生支持。下面的解决方案要求你有 5.3 及以上版本,它应该可以工作。已使用 5.4.0b13 进行测试,它可以在 5.3 上运行。
[System.Serializable]
public class ServiceProps
{
}
[System.Serializable]
public class DrawingResource
{
public string resourceUrl;
public ServiceProps serviceProps;
public string resourceType;
}
[System.Serializable]
public class DrawingUnit
{
public string drawingUnitId;
public List<DrawingResource> drawingResources;
public string drawingComponentId;
}
[System.Serializable]
public class TemplateConfig
{
public bool isVertical;
}
[System.Serializable]
public class DrawingModule
{
public string subjectTemplateId;
public List<DrawingUnit> drawingUnits;
public TemplateConfig templateConfig;
}
[System.Serializable]
public class Data
{
public string projectId;
public string sensorId;
public int createTime;
public int updateTimeStamp;
public string recognPicUrl;
public DrawingModule drawingModule;
public string targetId;
}
[System.Serializable]
public class PlayerInfo
{
public string status;
public Data data;
}
读取 isVertical
Json 值的代码:
void test()
{
string messageFromServer = "";
messageFromServer = "{\"status\":\"success\",\"data\":{\"projectId\":\"572ca0cde163d\",\"sensorId\":\"572ca2deea163b\",\"createTime\":1462514044,\"updateTimeStamp\":1462514044,\"recognPicUrl\":\"http://192.168.1.115:8500/dddd.jpg\",\"drawingModule\":{\"subjectTemplateId\":\"16\",\"drawingUnits\":[{\"drawingUnitId\":\"572ca0c4f14c023cdeea163c\",\r\n \"drawingResources\":\r\n [{\"resourceUrl\":\"http://192.168.1.115:8300/dds.png\",\"serviceProps\":{},\"resourceType\":\"IMG\"}],\"drawingComponentId\":\"1\"}],\r\n \"templateConfig\":{\"isVertical\":false}},\"targetId\":\"ba0a0d83c657e49eb312\"}}";
PlayerInfo playerInfo;
playerInfo = new PlayerInfo();
playerInfo.data = new Data();
playerInfo.data.drawingModule = new DrawingModule();
playerInfo.data.drawingModule.drawingUnits = new List<DrawingUnit>();
for (int i = 0; i < playerInfo.data.drawingModule.drawingUnits.Count; i++)
{
playerInfo.data.drawingModule.drawingUnits[i].drawingResources = new List<DrawingResource>();
}
playerInfo.data.drawingModule.templateConfig = new TemplateConfig();
playerInfo = JsonUtility.FromJson<PlayerInfo>(messageFromServer);
Debug.Log("Status: " + playerInfo.status);
Debug.Log("Vertical: " + playerInfo.data.drawingModule.templateConfig.isVertical);
}
关于c# - 如何从 litjson 中读取 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37089000/
2 个问题。 1) 在使用 Javascript 编写脚本时是否可以按原样使用 LitJson 库?这确实是关于能够在 javascript 源代码中使用 c# 源代码的一般性问题。 2) 我是 C#
我正在开发一个应用程序,我在其中使用来自服务器的 json 格式的数据。然而,我能够解析普通的 json 数据,但无法解析带有数组的 json 数据, 下面给出了 json 响应, [{"id_use
我从服务器传来的json文件是这样的: {"status":"success","data":{"projectId":"572ca0cde163d","sensorId":"572ca2deea16
由于 JSON 是一种可以写成字符串的格式,因此它必须由库解释,或者有时由语言本身解释。 在旧版本的 C# 中,没有类似的东西。使用库 LitJSON 我有以下问题我有一个名为 Vector3 的类包
我是一名优秀的程序员,十分优秀!