我需要在我的服务器中用节点js创建一个JSON字符串,以便在请求时发送给客户端.问题是这个JSON依赖于服务器中的可用数据,因此,JSON数组的大小总是不一样.我一整天都在尝试,但是虽然我觉得自己很接近,但我还是不明白.
示例查询如下:
json={"players":[
{"name":"Messi", "goals":8},
{"name":"Ronaldo", "goals":22},
{"name":"Costa", "goals":20},
{"name":"Neymar", "goals":13},
{"name":"Arabi", "goals":6},
{"name":"Bale", "goals":3},
{"name":"Toquero", "goals":0}]};
Run Code Online (Sandbox Code Playgroud)
我会通过以下方式将其发送到服务器:
res.contentType('application/json');
res.send(json);
Run Code Online (Sandbox Code Playgroud)
我想要的JSON数组创建它取决于一个名为'目标'的哈希,其中一个玩家名称是关键,而一些目标是值.因此,如果只有3个播放器,则JSON阵列只应具有此大小.
我一直在尝试在线创建JSON数组,如下所示:
result= "";
for(i in goals){
result = result+ '{ name:' + i + ", goals:" + goals[i] + '},';
}
result= result.substring(0, result.length - 1);
res.contentType('application/json');
res.send( { 'players': [ result]});
Run Code Online (Sandbox Code Playgroud)
但是,客户端只接收大小为1的json
Object {jugadores: Array[1]}
Run Code Online (Sandbox Code Playgroud)
jugadores:Array [1] 0:"{nombre:Messi,goles:8},{nombre:Ronaldo,goles:16},{nombre:Costa,goles:10},{nombre:Toquero,goles:0},{ nombre:Arabi,goles:2},{nombre:Bale,goles:10},{nombre:Neymar,goles:8}"长度:1
在此先感谢,我真的很挣钱:(
编辑:我现在尝试使用stringy做这个,但没有运气.我做错了什么?
result= "players:[";
for(i in goals){
result= result+ '{ name:' + i + ", goals:" + goals[i] + …Run Code Online (Sandbox Code Playgroud) 我试图在片段中使用Youtube播放器支持片段,但应用程序总是崩溃(NullPointerException),我无法找到任何类似的帖子来修复它.
我有导入导入android.support.v4.app.Fragment所以不应该是问题.
这是我的片段类的样子:
package com.example.activitydetector;
import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayer.OnInitializedListener;
import com.google.android.youtube.player.YouTubePlayer.Provider;
import com.google.android.youtube.player.YouTubePlayerFragment;
import com.google.android.youtube.player.YouTubePlayerSupportFragment;
import com.google.android.youtube.player.YouTubePlayerView;
import systemManager.SystemManager;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
public class GuidelinesFragment extends YouTubePlayerSupportFragment {
SystemManager sm;
YouTubePlayerView youTubeView;
String URL_VIDEO = "CaA-k1l0xa4";
String KEY_DEVELOPER = "AIzaSyBIIs0u0NXhsZguv8nCNvSzUmflTt7K1Ek";
public GuidelinesFragment() {
super();
// TODO Auto-generated constructor stub
}
public void onCreate(Bundle savedInstanceState) { …Run Code Online (Sandbox Code Playgroud) youtube android youtube-api android-fragments android-youtube-api
我正在努力为处于身份验证(令牌)下的端点编写测试。特别是,在编写我的测试时,尽管提供了作为登录请求的一部分收到的令牌,但我无法将登录请求与我的第二个请求链接起来。
登录端点.kt
const val LOGIN_ENDPOINT = "$API_VERSION/login"
@Location(LOGIN_ENDPOINT)
class Login
fun Route.loginEndpoint(patientsRepository: Repository<Patient>, authProvider: AuthProvider) {
post<Login> {
val params = call.receive<Parameters>()
val userId = params["id"] ?: return@post call.respond(status = HttpStatusCode.BadRequest, message = "Missing user id")
val user = patientsRepository.get(userId)
if (user != null) {
val token = authProvider.generateToken(user.id!!)
call.respond(TextContent("{ \"token\": \"$token\" }", ContentType.Application.Json))
} else {
call.respond(status = HttpStatusCode.NotFound, message = "User with id $userId does not exist")
}
}
}
Run Code Online (Sandbox Code Playgroud)
LoginEndpointTest.kt(通过,一切顺利)
@Test
fun `given user exists then …Run Code Online (Sandbox Code Playgroud) 我有以下布局,其中编辑文本显然没有任何理由离开屏幕.我试图找到类似的问题,但我不能.它应该是一个简单的,但我已经尝试了许多没有运气的东西.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<GridLayout
android:id="@+id/gridLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:columnCount="2"
android:orientation="horizontal" >
<TextView
android:id="@+id/titleTextView"
android:layout_columnSpan="2"
android:layout_gravity="left"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:text="dsgsdgsd"
android:textColor="@color/red"
android:textStyle="bold" />
<View
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_columnSpan="2"
android:layout_gravity="left"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="@color/red" />
<TextView
android:id="@+id/textTitle"
android:layout_gravity="left"
android:background="#ffffff"
android:paddingLeft="15dp"
android:text="Title"
android:textColor="@color/grey" />
<EditText
android:id="@+id/editTitle"
android:layout_gravity="right"
android:inputType="text">
</EditText>
<View
android:layout_height="1dip"
android:layout_columnSpan="2"
android:layout_gravity="left"
android:background="#E6E6E6" />
<TextView
android:id="@+id/textCategory"
android:layout_gravity="left"
android:background="#ffffff"
android:gravity="left"
android:paddingLeft="15dp"
android:text="Category"
android:textColor="@color/grey" />
<EditText
android:id="@+id/editCategory"
android:layout_width="225dp"
android:layout_gravity="right"
android:inputType="text" />
<Button
android:id="@+id/btnCreateAccount"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="#ffffff"
android:onClick="createExpense"
android:text="Done"
android:textColor="@color/red" /> …Run Code Online (Sandbox Code Playgroud) I\xc2\xb4m 使用适用于 Android 的 Youtube Player API 来播放视频,选择其中之一listview(视频之前已解析 json 等)。当我只能播放第一个视频时出现问题listview我选择的第一个视频时,问题就出现了,因为当我单击 listView 的不同元素时,播放器视图不会改变。这是重要的代码:
lista.setOnItemClickListener(new OnItemClickListener(){\n\n @Override\n public void onItemClick(AdapterView<?> pariente, View view, \n int posicion, long id) {\n\n Video chosen = (Video)pariente.getItemAtPosition(posicion); \n String urlVideo = chosen.getUrl();\n String aux = getYoutubeVideoId(urlVideo);\n URL_VIDEO = aux;\n\n youTubeView.initialize(KEY_DEVELOPER, new YouTubePlayer.OnInitializedListener() {\n\n @Override\n public void onInitializationFailure(Provider arg0,\n YouTubeInitializationResult arg1) {\n // TODO Auto-generated method stub\n Log.d("DEPURANDO: ERROR AL VISUALIZAR", URL_VIDEO);\n\n }\n\n @Override\n public void onInitializationSuccess(Provider arg0,\n YouTubePlayer player, boolean wasRestored) …Run Code Online (Sandbox Code Playgroud) 我知道有很多类似的问题,但我仍然无法找到解决问题的方法,而且在这个阶段,我没有想法.我有以下设置:
这是代码的样子:
ApplicationModule.java
@Module
public class ApplicationModule {
private Application mApp;
public ApplicationModule(Application app) {
mApp = app;
}
@Provides
@Singleton
public Application provideApplication() {
return mApp;
}
@Provides
@Singleton
Context provideApplicationContext() {
return mApp.getApplicationContext();
}
}
Run Code Online (Sandbox Code Playgroud)
ApplicationComponent.java
@Singleton
@Component(modules = {ApplicationModule.class})
public interface ApplicationComponent {
Application application();
Context getContext();
}
Run Code Online (Sandbox Code Playgroud)
NetModule.java
@Module
public class NetModule {
String mBaseUrl;
public NetModule(String baseUrl) {
this.mBaseUrl = baseUrl;
}
@Provides
@Singleton
SharedPreferences providesSharedPreferences(Application application) {
return PreferenceManager.getDefaultSharedPreferences(application);
} …Run Code Online (Sandbox Code Playgroud)