我有以下代码:
JSONArray jsonArray = new JSONArray(new String(cod_bare));
for (int i=0;i<jsonArray.length(); i++)
{
cod_in_loop=jsonArray.getString(i);
.....
}
code_bare = [085845,0547561 ....]
问题是cod_in_loop显示没有de 0 =&gt;的数字。 085845它以cod_in_loop结尾,仅为85845.我需要完整的数字&#34; 085845&#34;
怎么办?
答案 0 :(得分:4)
问题是JSON,而不是代码。如果你的JSON真的是
[085845,0547561....]
然后无效;在JSON中,除非0
后面紧跟0
(例如.
),否则不允许您使用0.1
开始一个号码,我们可以从http://json.org的便利图中看到:
...以及the RFC中的此文字:
数字的表示与大多数数字的表示相似 编程语言。数字用10表示 十进制数字。它包含可能的整数组件 以可选的减号为前缀,后面可以跟一个 分数部分和/或指数部分。 领先的零不是 允许的。强>
(我的重点)
所以这里的修复是纠正JSON。如果你想保留前导零,那么这几乎意味着你正在处理的东西不是一个数字,它是一系列数字 - 例如一个字符串,所以:
["085845","0547561"....]
答案 1 :(得分:0)
I need the full number "085845"
我无法理解您使用Json的原因。如果code_bar
是String
,我认为您必须split the string
//java code
String code_bar = "[1,2,3,4,5,6"];
String[] arrayNumbers = code_bar .split(",");
for (int i = 0; i < arrayNumbers .length; i++) {
System.out.println(arrayNumbers [i]);
}
**您必须为删除"["
和"]"
最后,如果您需要使用json,则必须在{
中添加}
和code_bar
:
//c# code:
var array = JArray.Parse(code_bar.Trim('{', '}'));
List<String> listNumbers = array.ToObject<List<String>>();