这是我的JSON字符串,仅表示一个简单的列表:
test
这是我的反序列化的C#代码:
Options
我不知道为什么我的AccelerationList为空!有什么建议吗?
答案 0 :(得分:1)
使用Newtonsoft.Json,可以使其干净
public void onBindViewHolder(@NonNull final myViewHolder holder, final int position) {
holder.tvItem.setText(itemList.get(position).getmTitle());
Picasso.get().load(itemList.get(position).geturl()).into(holder.imgFlag);
final ModelClass model= itemList.get(position);
holder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Activity activity = ((AppCompatActivity)mContext);
Fragment fragment = activity.getSupportFragmentManager().findFragmentById(R.id.fragment);
// Check if the fragment already exists, if so, just update it
if (fragment != null) {
DataFragment dataFragment = (DataFragment) fragment;
dataFragment.replaceData(model);
}
else { // Create new instance
DataFragment dataFragment= new DataFragment();
activity.getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment,dataFragment)
.commit();
Bundle bundle = new Bundle();
bundle.putSerializable("model", model);
dataFragment.setArguments(bundle);
}
});
}
}
您将获得字符串中的float列表,因此我们需要在提取后将字符串转换为list
答案 1 :(得分:1)
我相信您拥有除1期以外的大部分内容。
您正在尝试将整个内容(json字符串)转换为List。您需要正确地转换json对象,以获取AccelerationsList的值,然后正确地转换为浮动列表的字符串。
Write-Host
输出:
string jsonContent = @"{""accelerationsList"":""[-3.1769, 3.304, 6.3455997, 3.1701]""}";
var stringRepOfArray = JObject.Parse(jsonContent)["accelerationsList"].ToString();
List<float> floatList = new JavaScriptSerializer().Deserialize<List<float>>(stringRepOfArray);