首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从litjson读取布尔值?

如何从litjson读取布尔值?
EN

Stack Overflow用户
提问于 2016-05-07 13:13:09
回答 2查看 1.6K关注 0票数 2

服务器上的json文件如下所示:

代码语言:javascript
复制
{"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“值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-07 19:13:15

首先,您的Json而不是有效。在:"serviceProps"之间应该有一个“{},”。

以下是对Json数据的固定验证。

代码语言:javascript
复制
{"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

Json 5.3发行版中添加对的本机支持。下面的解决方案要求您有5.3及以上版本,并且应该可以工作。使用5.4.0b13进行测试,它可以在5.3上工作。

代码语言:javascript
复制
[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值的代码:

代码语言:javascript
复制
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);
 }
票数 1
EN

Stack Overflow用户

发布于 2016-05-07 13:15:06

像这样

代码语言:javascript
复制
// read your json data into a variable
var jsonData = {"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"}};   

//then read it like this
var isVertical = jsonData.templateConfig.isVertical

编辑

它应该是你想要的方式

代码语言:javascript
复制
bool isVertical = (bool)jsondata["drawingModule"]["templateConfig"]["isVertical"];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37089000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档