JSON RPC 格式化

Posted

技术标签:

【中文标题】JSON RPC 格式化【英文标题】:JSON RPC Formatting 【发布时间】:2012-04-16 11:10:47 【问题描述】:

在我的项目中,我必须向 oracle 服务器发送一个非常具体的 JSON 请求以接收响应; 目前我正在发送 json 字符串:

\"id\":\"1\",\"method\":\"getOverviewInfo\",\"Params\":\"overviewID\":\"0000004297\",\"overviewType\":\"Stock Items\",\"AORParams\":null,\"arrOptions\":\"columnInfo\":\"1;100;1;1#\",\"orderInfo\":\"1;0;0#\"" 来自这个班级:

public class SendOverview                  

public string id    get; set;
                public string method  get; set;
                public SendOV Params get; set;
    

 public class SendOV                   

public string overviewID  get; set; 
        public string overviewType  get; set; 
        public string AORParams  get; set; 
        public SentDatas arrOptions  get; set; 

       

public class SentDatas           

public string columnInfo  get; set; 
        public string orderInfo  get; set; 
    

现在我的问题是,我是否可以调整请求字符串以从 Params 数组中删除成员名称,而不是 "overviewID" = "xxxx","overviewType" = "xxxx".......

应该是 "xxxx","xxxx"

编辑格式:


    "id": "1",
    "method": "getOverviewInfo",
    "Params": 
        "0000004297",
        "Stock Items",
        null,
        
            "columnInfo": "1;100;1;1#",
            "orderInfo": "1;0;0#"
        
    

【问题讨论】:

这里的问题在于我不知道如何序列化一个多对象数组,甚至创建它.. 【参考方案1】:

是的,您可以这样做,但如果您这样做,您需要将对象 替换为数组 [] 以获得参数的值。

喜欢:


    "id": "1",
    "method": "getOverviewInfo",
    "Params": [
        "0000004297",
        "Stock Items",
        null,
        
            "columnInfo": "1;100;1;1#",
            "orderInfo": "1;0;0#"
        
    ]

我假设您想要这样做的原因是传输大小。您发送到的端点仍然需要知道如何读取该请求,如果它支持上述位置参数,您将需要确保它们以正确的顺序定位,并保持不变。

【讨论】:

以上是关于JSON RPC 格式化的主要内容,如果未能解决你的问题,请参考以下文章

Flask-JSOONRPC

Jsonrpc4j 和 go 的 rpc/jsonrpc 之间的 JSONRPC 格式不同

RPC框架之Thrift

api接口,RPC,WebService分别解决啥问题

JSON-RPC--轻量级的RPC

使用 nodejs 调用 JSON-RPC