我有一个ArrayList,我在ArrayAdapter中使用ListView.我需要获取列表中的项目并将它们转换为JSONArray以发送到API.我已经四处寻找,但没有找到任何解释这可行的方法,任何帮助都会受到赞赏.
更新 - 解决方案
以下是我最终要解决的问题.
ArrayList中的对象:
public class ListItem {
private long _masterId;
private String _name;
private long _category;
public ListItem(long masterId, String name, long category) {
_masterId = masterId;
_name = name;
_category = category;
}
public JSONObject getJSONObject() {
JSONObject obj = new JSONObject();
try {
obj.put("Id", _masterId);
obj.put("Name", _name);
obj.put("Category", _category);
} catch (JSONException e) {
trace("DefaultListItem.toString JSONException: "+e.getMessage());
}
return obj;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我如何转换它:
ArrayList<ListItem> myCustomList = .... // list filled with objects
JSONArray jsonArray = …Run Code Online (Sandbox Code Playgroud) 您可以将多个表单序列化为一个,以便只发出一个帖子或ajax请求吗?我已经四处寻找,只需通过post/ajax提交每个表单.
我有JSONObject一些属性,我想转换成一个Map<String, Object>
有什么东西我可以在json.org上使用或者ObjectMapper?
我正在尝试在Volley JsonObjectRequest中发送POST参数.最初,它通过遵循官方代码所说的传递包含JsonObjectRequest的构造函数中的参数的JSONObject来为我工作.然后它突然停止工作,我没有对以前工作的代码进行任何更改.服务器不再识别正在发送任何POST参数.这是我的代码:
RequestQueue queue = Volley.newRequestQueue(this);
String url ="http://myserveraddress";
// POST parameters
Map<String, String> params = new HashMap<String, String>();
params.put("tag", "test");
JSONObject jsonObj = new JSONObject(params);
// Request a json response from the provided URL
JsonObjectRequest jsonObjRequest = new JsonObjectRequest
(Request.Method.POST, url, jsonObj, new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response)
{
Toast.makeText(getApplicationContext(), response.toString(), Toast.LENGTH_SHORT).show();
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error)
{
Toast.makeText(getApplicationContext(), error.toString(), Toast.LENGTH_SHORT).show();
}
});
// Add the request to …Run Code Online (Sandbox Code Playgroud) 我收到了错误
"未经检查的调用'put(K,V)'作为原始类型'java.util.HashMap'的成员"
这是显示错误的行
JSONArray FieldValues = new JSONArray(new JSONObject(new HashMap().put(K, V)));
Run Code Online (Sandbox Code Playgroud)
我做错了什么或者我应该添加什么?任何帮助是极大的赞赏
我想构建一个JSON对象,类似于使用JSONObject和JSONArray跟踪java中的结构.
我已经经历了堆栈溢出的各种帖子,这建议使用push,put等方法,我无法为JSONArray识别.请帮忙.
{
"name": "sample",
"def": [
{
"setId": 1,
"setDef": [
{
"name": "ABC",
"type": "STRING"
},
{
"name": "XYZ",
"type": "STRING"
}
]
},
{
"setId": 2,
"setDef": [
{
"name": "abc",
"type": "STRING"
},
{
"name": "xyz",
"type": "STRING"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud) 我试图在Node js中创建一个JSON对象,但没有任何成功.例如,创建一个像这样的对象:
{ 'Orientation Sensor':
[ { sampleTime: '1450632410296',
data: '76.36731:3.4651554:0.5665419' },
{ sampleTime: '1450632410296',
data: '78.15431:0.5247617:-0.20050584' } ],
'Screen Orientation Sensor':
[ { sampleTime: '1450632410296',
data: '255.0:-1.0:0.0' } ],
'MPU6500 Gyroscope sensor UnCalibrated':
[ { sampleTime: '1450632410296',
data: '-0.05006743:-0.013848438:-0.0063915867},
{ sampleTime: '1450632410296',
data: '-0.051132694:-0.0127831735:-0.003325345'}]}
Run Code Online (Sandbox Code Playgroud)
但是以一种动态的方式,不知道每个项目的大小.Node js有类似的东西吗?非常感谢你
对于一个java数据处理程序,我发送格式正确的JSON,但是Spring,Java的组合决定如何构建它所看到的内容,而框架我真的不应该改变JSON这样的状态,以便一旦我能看到它,就会变成一个LinkedTreeMap,我需要将它转换为一个JsonObject.这不是将JSON序列化/反序列化为java对象,它的"最终形式"是gson JsonObject,它需要能够处理任何有效的JSON.
{
"key":"value",
"object": {
"array":[
"value1",
"please work"
]
}
}
Run Code Online (Sandbox Code Playgroud)
是我一直在使用的样本,一旦我看到它,它是一个LinkedTreeMap,.toString()s到
{key=value, object={array=[value1, please work]}}
Run Code Online (Sandbox Code Playgroud)
你可以用":"替换"=",但是没有内部引号
new JsonParser().parse(gson.toJson(STRING)).getAsJsonObject()
Run Code Online (Sandbox Code Playgroud)
战略.
是否有更直接的方法将LinkedTreeMap转换为JsonObject,或者将库内部引号添加到字符串中,甚至是将sting转换为不需要内部引号的JsonObject的方法?
我在Java中使用GSON作为JSON解析器,但键并不总是相同的.
例如.我有以下JSON:
{"我已经知道的对象":{
"key1":"value1",
"key2":"value2",
"AnotherObject":{"anotherKey1":"anotherValue1","anotherKey2":"anotherValue2"}
}
我已经获得了JSONObject"我已经知道的对象".现在我需要获取此Object的所有JSONElements,这将是"Key1","Key2"和"AnotherObject".
提前致谢.
编辑:输出应该是一个字符串数组,其中包含JSONObject的所有键
我有一个类似的字符串 - {"state":1,"cmd":1},我需要将其与生成的输出进行比较,但在生成的输出中,顺序会不断变化,即有时它的{"state":1,"cmd":1}其他时间{"cmd":1,"state":1}.
目前我正在使用equals()方法进行比较,在这种情况下可以更好地验证两个字符串.我担心的是两个条目都存在于字符串中,顺序不是imp.