Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java创建json,用python解析?_Python_Json_Snmp4j - Fatal编程技术网

用java创建json,用python解析?

用java创建json,用python解析?,python,json,snmp4j,Python,Json,Snmp4j,我正在使用snmp4j执行SNMP漫游,需要将结果发送到客户端,以便用python进行解码,以便进一步分析。我是json新手,需要帮助了解将java数据类型转换为json的最佳方法,以便可以轻松地在python中解码。我不确定它是否能在适当的目录或列表中被解码,但这样做的任何帮助都将是有用的。目前我正在使用gson将下面的resonse转换为json [vbs=[1.3.6.1.2.1.2.2.1.2.1 = VLAN1, 1.3.6.1.2.1.2.2.1.2.2 = FastEthernet

我正在使用snmp4j执行SNMP漫游,需要将结果发送到客户端,以便用python进行解码,以便进一步分析。我是json新手,需要帮助了解将java数据类型转换为json的最佳方法,以便可以轻松地在python中解码。我不确定它是否能在适当的目录或列表中被解码,但这样做的任何帮助都将是有用的。目前我正在使用gson将下面的resonse转换为json

[vbs=[1.3.6.1.2.1.2.2.1.2.1 = VLAN1, 1.3.6.1.2.1.2.2.1.2.2 = FastEthernet0/1],status=0,exception=null,report=null]
下面是我执行json.loads时的结果

[{u'vbs': [{u'variable': {u'value': [86, 76, 65, 78, 49]}, u'oid': {u'value': [1, 3, 6, 1, 2, 1, 2, 2, 1, 2, 1]}}, {u'variable': {u'value': [70, 97, 115, 116, 69, 116, 104, 101, 114, 110, 101, 116, 48, 47, 49]}, u'oid': {u'value': [1, 3, 6, 1, 2, 1, 2, 2, 1, 2, 2]}}], u'status': 0}]

请帮助理解更好的编码为json的方法,以方便和可用的python解码。这里需要java序列化吗?我不知道这是什么意思,但仍然想知道我的问题是否清楚,任何帮助,至少是为我指出正确的资源,都会有很大的帮助。

好的解决方案是使用java中的HashMap,当转换为json时,可以轻松地解码为字典,而无需任何操作。我就是这样做的

//declare a hashmap
HashMap hm = new HashMap();

//loop over the snmp result
for (VariableBinding varBinding : varBindings) {
    hm.put(varBinding.getOid(), varBinding.getVariable().toString());
String js = new Gson().toJson(hm);
//now if you return js as string and do json.loads(js) in python you will get dictionary with oid as key and value as value for all oids.

您的问题可能是:如何使用gson(Java)创建对象的自定义json表示。Python部分总是
json.loads()
——没什么有趣的。当然,您也可以在Python中对json进行后处理以获得相同的结果:遍历结果dict并将其转换为您喜欢的任何结构。如果在发送之前能够将其很好地结构化为json,则后处理是不明智的,因为它需要扩展。是的,我正在使用gson,但真的不确定是否有标准的编码方式,或者我需要一个自定义的编码方式。这就是为什么我建议将其作为最后的选择。你可以选择:它在你的特定情况下是否有效取决于你。如果Java是唯一的生产者,Python代码是唯一的消费者,那么在Python中操纵数据可能比在Java中容易得多(您的情况可能不同)是的,Java是唯一的生产者,Python是唯一的消费者,将在Python中操纵数据,除非有更好的输入,感谢第一个选项是使用gson创建自定义json表示